0

我已经部署了 CruiseControl.Net(版本 1.6.7981.1)服务器,它执行以下任务:

  1. 构建触发器
  2. 贴标机
  3. VSTS Soursecontrol 块(从 TFS 2010 服务器获取源代码)
  4. 在调试模式下构建代码
  5. 使用 Nanat 任务运行 NUnit 测试
  6. 合并 NUnit-Result.xml(发布者任务)

由于我每次运行 NUnit 任务之前都需要清除 NUnit-Result.xml 文件,因此我在 Nant.build 文件中添加了一个删除任务,该任务在 NUnit 任务运行之前删除 NUnit-results.xml。

现在我的问题是当我的构建触发时,如果我的 TFS 服务器不可访问,构建失败并且只有发布者任务运行,所以旧 Nunit 结果文件合并到失败的构建中。

我尝试运行“预构建”任务,但它仅在 TFS 服务器可访问时才有效。

现在我想要的是删除 Nunit-result.xml 的任务,即使我的 TFS 不可访问也可以运行(在源控制块之前或发布者块内/之后)

提前致谢

4

3 回答 3

0

另一种选择是在 nunit 任务运行之前创建一个要运行的任务,这会删除 nunit-result.xml 文件。

例如执行 cmd /c "del NUnit-Result.xml"

于 2012-06-07T15:40:56.190 回答
0

最后有一个发布者移动 nunit 结果文件或删除它。然后它不会出现在下一个构建中。

于 2012-05-25T15:33:00.920 回答
0

您可以添加 exec 任务以在文件合并之前删除发布者设置中的文件

像这样:

<publishers>
  <xmllogger />
  <statistics />
  <buildpublisher>
    <sourceDir>$(buildDir)\_PublishedWebsites\$(projectName)</sourceDir>
    <publishDir>$(webDir)</publishDir>
    <useLabelSubDirectory>false</useLabelSubDirectory>
    <alwaysPublish>false</alwaysPublish>
  </buildpublisher>
  <exec>
    <executable>$(workingDir)\deleteNunitResultxml.cmd</executable>
  </exec>
   ...
</publishers>
于 2012-05-24T10:09:13.327 回答