Gallioを使用してすべてのユニットテストを実行する小さなPowerShellタスクがあり、teamcityはレポートをインポートしますが、ビルドステップに失敗せず、失敗または合格したテストの数を表示しません。
したがって、レポートのテストに基づいてチームシティにビルドを失敗させる方法と、ステータスで合格、無視、失敗したテストの数を表示するにはどうすればよいですか?
Add-PSSnapIn Gallio
$fileList = Get-ChildItem ./source/ -filter *.Unittests.dll -Recurse | where { $_.FullName -like "*bin*" } | %{$_.FullName}
Run-Gallio -Files $fileList -ReportTypes XML -ReportNameFormat unittests
Write-Output "##teamcity[importData type="nunit" path="./Reports/unittests.xml"]"
ログは、ファイルが渡されたことを示しています
[Step 2/2] NUnit report watcher
[12:39:11][NUnit report watcher] 1 report found for paths:
[12:39:11][NUnit report watcher] C:TeamCitybuildAgentwork416967dfd65045Reportsunittests.xml
[12:39:11][NUnit report watcher] Successfully parsed
Teamcity 7.1.1を使用している
回答:
回答№1は1TeamCityがゼロ以外のコードを認識し、エラーのためにビルドを停止するように、Powershellがゼロ以外の終了コード(1など)で終了することを確認する必要があります。
これを行うには、スクリプトに次のようなものを入れます。
$host.SetShouldExit(1);
exit 1;
これにより、Powershellはエラーコード1で終了します。
あなたがキャッチするようなスクリプトを書くことができます例外(失敗したテストは言う)し、上記のように終了します。これは、trapステートメント(powershell 1)またはtry / catch(powershell 2以降)を使用して実行できます。