2015-07-10 54 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