【问题标题】:NUnit Extension Pack task stop after failed testsNUnit Extension Pack 任务在测试失败后停止
【发布时间】:2015-07-10 19:55:27
【问题描述】:

我正在从扩展包运行 msbuild nunit 任务,该扩展包有 1 个测试失败:

 <Target Name="Tests">
    <MSBuild.ExtensionPack.CodeQuality.NUnit 
      Assemblies="$(DropsDir)\$(Configuration)\$(TestPrj)\$(TestPrj).dll" 
      ToolPath="$(NUnitPath)"
      ContinueOnError="False">
      <Output TaskParameter="Total" PropertyName="ResultTotal"/>
      <Output TaskParameter="NotRun" PropertyName="ResultNotRun"/>
      <Output TaskParameter="Failures" PropertyName="ResultFailures"/>
      <Output TaskParameter="Errors" PropertyName="ResultErrors"/>
      <Output TaskParameter="Inconclusive" PropertyName="ResultInconclusive"/>
      <Output TaskParameter="Ignored" PropertyName="ResultIgnored"/>
      <Output TaskParameter="Skipped" PropertyName="ResultSkipped"/>
      <Output TaskParameter="Invalid" PropertyName="ResultInvalid"/>
    </MSBuild.ExtensionPack.CodeQuality.NUnit>
  </Target>

输出:

如何防止下一个目标被执行? “邮编项目”? 我正在使用 MSBuild.Extension.Pack.March.2015.zip 和框架 4.0

【问题讨论】:

    标签: msbuild msbuild-task msbuild-4.0 msbuildextensionpack


    【解决方案1】:

    我使用错误任务解决了它并读取了输出变量 ResultErrors 和 ResultFailures。

    <Error Condition="$(ResultErrors) > 0 Or $(ResultFailures) > 0" Text="Unit Tests didn't pass *****" />  
    

    【讨论】:

      【解决方案2】:

      您没有提及您正在使用的 MSBuildExtensionPack 的版本,但查看 Trunk 的源代码(第 278 行)看起来您需要指定 FailOnFailures 属性才能进行故障检测上班。

      因此

       <Target Name="Tests">
          <MSBuild.ExtensionPack.CodeQuality.NUnit 
            Assemblies="$(DropsDir)\$(Configuration)\$(TestPrj)\$(TestPrj).dll" 
            ToolPath="$(NUnitPath)"
            FailOnFailures="True"
            ContinueOnError="False">
            <Output TaskParameter="Total" PropertyName="ResultTotal"/>
            <Output TaskParameter="NotRun" PropertyName="ResultNotRun"/>
            <Output TaskParameter="Failures" PropertyName="ResultFailures"/>
            <Output TaskParameter="Errors" PropertyName="ResultErrors"/>
            <Output TaskParameter="Inconclusive" PropertyName="ResultInconclusive"/>
            <Output TaskParameter="Ignored" PropertyName="ResultIgnored"/>
            <Output TaskParameter="Skipped" PropertyName="ResultSkipped"/>
            <Output TaskParameter="Invalid" PropertyName="ResultInvalid"/>
          </MSBuild.ExtensionPack.CodeQuality.NUnit>
        </Target>
      

      【讨论】:

      • 我已经用 MSBuildExtensionPack 版本更新了帖子。此外,FailOnFailures 不起作用可能是因为这被报告为错误而不是失败。我可以读取 ResultErrors 变量上的错误。有什么方法可以停止使用该属性的构建?
      • @nerlijma 你发现上面的答案是正确的方法,在我看来这似乎是 MSBuildExtensionPack 中的一个错误,可能值得在他们的 GitHub 上打开一个问题来报告它其他人。
      猜你喜欢
      • 2017-05-05
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 2016-04-26
      相关资源
      最近更新 更多