我正在使用的TeamCity建立我的持續集成服務器,我有我的版本(.NET/VS2010/MSBUILD)團隊市防止生成步驟從運行
- 使用的MSBuild建立我的解決方案三個步驟。
- 運行NUnit測試。
- 使用MSBUILD做我的項目的Web部署。
我試圖解決的問題是防止步驟3運行,如果任何測試失敗。這可能嗎?
我正在使用的TeamCity建立我的持續集成服務器,我有我的版本(.NET/VS2010/MSBUILD)團隊市防止生成步驟從運行
我試圖解決的問題是防止步驟3運行,如果任何測試失敗。這可能嗎?
您可以通過處理輸出參數「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'"/ ... />
現在我正在TeamCity中使用多個構建步驟。因此,雖然構建可能失敗,但該過程中的所有步驟都將被執行。我希望能夠在MSBuild文件中完成所有工作,但是我找不到可以運行Web部署發佈的構建任務的文檔。我打算嘗試使用Exec任務運行MSDeploy.exe。 –
如果測試失敗,沒有你的構建失敗?如果不是,那就是我專注的地方。一旦你有了這個工作,你可以選擇將Web部署推入一個獨立的構建,這取決於你的實際構建。我更喜歡這個選項,因爲我認爲它們是獨立的進程,並且應該單獨成功/失敗。 –
不幸的是,目前似乎沒有可能使用teamcity http://youtrack.jetbrains.net/issue/TW-12194 – iamkrillin