0

Gallio を使用してすべての単体テストを実行する小さな powershell タスクがあり、teamcity はレポートをインポートしますが、ビルド ステップは失敗せず、失敗または合格したテストの数は表示されません。

では、レポートのテストに基づいて 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:\TeamCity\buildAgent\work\416967dfd65045\Reports\unittests.xml
[12:39:11][NUnit report watcher] Successfully parsed

teamcity 7.1.1を使用しています

4

1 に答える 1

1

TeamCity がゼロ以外のコードに気づき、エラーのためにビルドを停止できるように、Powershell がゼロ以外の終了コード (たとえば 1) で終了することを確認する必要があります。

これを行うには、スクリプトに次のように記述します。

  $host.SetShouldExit(1);
  exit 1;

これにより、Powershell がエラー コード 1 で終了します。

例外をキャッチするようにスクリプトを記述し (失敗したテストなど)、上記のように終了することができます。これは、trap ステートメント (powershell 1) または try/catch (powershell 2 以降) を使用して実行できます。

于 2012-11-08T10:13:05.837 に答える