【问题标题】:Cruisecontrol task with can execute even if Soursecontrol is not accessible即使 Soursecontrol 不可访问,Cruisecontrol 任务也可以执行
【发布时间】:2012-05-27 21:57:33
【问题描述】:

我已经部署了 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 不可访问(在源控制块之前或发布者块内/之后)也可以运行它

提前致谢

【问题讨论】:

    标签: cruisecontrol.net nunit-console prebuild


    【解决方案1】:

    您可以添加一个 exec 任务以在文件合并之前删除 publisers 集中的文件

    像这样:

    <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>
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2013-05-12
          • 1970-01-01
          • 2017-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-23
          • 1970-01-01
          • 2017-11-08
          相关资源
          最近更新 更多