2015-07-10 75 views
0

我正在从具有1次测试,未能扩展包的MSBuild NUnit的任务:NUnit的扩展包任务停止失败后,试验

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

输出:

enter image description here

我怎样才能防止下一个要执行的目标是? “邮编项目”? 我使用MSBuild.Extension.Pack.March.2015.zip和框架4.0

回答

1

我解决它使用一个错误的任务,同时读取输出变量ResultErrors和ResultFailures。

<Error Condition="$(ResultErrors) > 0 Or $(ResultFailures) > 0" Text="Unit Tests didn't pass *****" /> 
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> 
+0

我已更新MSBuildExtensionPack版本的帖子。此外,FailOnFailures不起作用可能是因为这被报告为错误而不是失败。我可以读取ResultErrors变量上的错误。任何方式我可以停止使用该属性的构建? – nerlijma

+1

@nerlijma上面的答案是你找到的正确方法,在我看来,这似乎是MSBuildExtensionPack中的一个错误,可能值得在他们的GitHub上打开一个问题报告给其他人。 – aolszowka