NUnit 扩展包任务在测试失败后停止
NUnit Extension Pack task stop after failed tests
我是 运行 来自扩展包的 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>
输出:
如何防止下一个目标被执行? "Zip-Projects" ?
我正在使用 MSBuild.Extension.Pack.March.2015.zip 和框架 4.0
您没有提及您使用的是哪个版本的 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>
我使用错误任务并读取输出变量 ResultErrors 和 ResultFailures 解决了这个问题。
<Error Condition="$(ResultErrors) > 0 Or $(ResultFailures) > 0" Text="Unit Tests didn't pass *****" />
我是 运行 来自扩展包的 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>
输出:
如何防止下一个目标被执行? "Zip-Projects" ? 我正在使用 MSBuild.Extension.Pack.March.2015.zip 和框架 4.0
您没有提及您使用的是哪个版本的 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>
我使用错误任务并读取输出变量 ResultErrors 和 ResultFailures 解决了这个问题。
<Error Condition="$(ResultErrors) > 0 Or $(ResultFailures) > 0" Text="Unit Tests didn't pass *****" />