2011-11-18 26 views
4

我正在使用的TeamCity建立我的持續集成服務器,我有我的版本(.NET/VS2010/MSBUILD)團隊市防止生成步驟從運行

  1. 使用的MSBuild建立我的解決方案三個步驟。
  2. 運行NUnit測試。
  3. 使用MSBUILD做我的項目的Web部署。

我試圖解決的問題是防止步驟3運行,如果任何測試失敗。這可能嗎?

+0

如果測試失敗,沒有你的構建失敗?如果不是,那就是我專注的地方。一旦你有了這個工作,你可以選擇將Web部署推入一個獨立的構建,這取決於你的實際構建。我更喜歡這個選項,因爲我認爲它們是獨立的進程,並且應該單獨成功/失敗。 –

+0

不幸的是,目前似乎沒有可能使用teamcity http://youtrack.jetbrains.net/issue/TW-12194 – iamkrillin

回答

2

您可以通過處理輸出參數「ExitCode」然後執行MSBuild Error Task取決於「ExitCode」或執行Deploy任務/目標取決於此條件來執行此操作,因此取決於您。

錯誤任務:

停止構建並記錄基礎上的評估條件語句錯誤。 的錯誤任務允許的MSBuild項目問題的錯誤文字記錄器和停止建設執行

<!-- Build --> 
<Build .... /> 

<!-- Run tests --> 
<Nunit ....> 
    <Output TaskParameter="ExitCode" 
      PropertyName="NUnitResult" /> 

<!-- Stop build in case of error whilst tests run -->  
<Error Text="Tests failed" 
     Code="$(NUnitResult)" 
     Condition="'$(NUnitResult)' != '0'"/> 

<!-- Deploy -->  
<Deploy Condition="'$(NUnitResult)' != '0'"/ ... /> 
+0

現在我正在TeamCity中使用多個構建步驟。因此,雖然構建可能失敗,但該過程中的所有步驟都將被執行。我希望能夠在MSBuild文件中完成所有工作,但是我找不到可以運行Web部署發佈的構建任務的文檔。我打算嘗試使用Exec任務運行MSDeploy.exe。 –

相關問題