2009-09-16 245 views
5

在Microsoft Team Foundation Server中設置CI,我構建了一個構建解決方案並在解決方案中執行所有單元測試的構建。在單個單元測試失敗時失敗TFS構建

目前,如果構建成功並且單元測試失敗,則構建將顯示爲部分成功。我想在單元測試失敗時顯示構建失敗。

任何人都可以告訴我,如果有辦法完成此功能?

回答

3

如果您在構建機器上安裝VS2008 SP1中,那麼你可以簡單地將以下屬性添加到您的TFSBuild.proj文件:

<TreatTestFailureAsBuildFailure>true</TreatTestFailureAsBuildFailure> 

如果您沒有安裝SP1和你不想要安裝它,那麼你就可以做到這一點的老式路線詳細的here by the Dev Lead on the TFS Build team, Aaaron Hallberg

<Target Name="AfterTest"> 

    <!-- Refresh the build properties. --> 
    <GetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
         BuildUri="$(BuildUri)" 
         Condition=" '$(IsDesktopBuild)' != 'true' "> 
     <Output TaskParameter="TestSuccess" PropertyName="TestSuccess" /> 
    </GetBuildProperties> 

    <!-- Set CompilationStatus to Failed if TestSuccess is false. --> 
    <SetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
         BuildUri="$(BuildUri)" 
         CompilationStatus="Failed" 
         Condition=" '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' "> 

    </Target> 
+0

一旦我安裝的Team Foundation Server 2008 SP1和TFSBuild.proj的「其他屬性」節中添加你上面列出的財產它工作完美。 謝謝你的幫助! – Sam 2009-09-17 16:59:49