ほとんどのテスト ランナーと同様に、XUnit はコンソール ランナーからのリターン コードで失敗したテストの数を返します。ツールの戻りコードが 0 でない場合、Cake はすぐに例外をスローし、ビルドに失敗します。
これは、次の XUnit ランナー テストで確認できます。
https://github.com/cake-build/cake/blob/08907d1a5d97b66f58c01ae82506280882dcfacc/src/Cake.Common.Tests/Unit/Tools/XUnit/XUnitRunnerTests.cs#L145
したがって、次のことを確認するには:
単にコードレベルで合格または不合格です
これは、ビルドが成功したかどうかによって暗黙的にわかります。私は通常、次のような戦略を使用します。
Task("Tests")
.Does(() =>
{
var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll");
XUnit2(testAssemblies,
new XUnit2Settings {
Parallelism = ParallelismOption.All,
HtmlReport = false,
NoAppDomain = true,
XmlReport = true,
OutputDirectory = "./build"
});
})
.ReportError(exception =>
{
Information("Some Unit Tests failed...");
ReportUnit("./build/report-err.xml", "./build/report-err.html");
});
これは、Cake の例外処理機能を利用しています。
http://cakebuild.net/docs/fundamentals/error-handling
エラーが発生したときにアクションを実行します。さらに、ReportUnit エイリアスを使用して、XML レポートを人間が読める HTML レポートに変換します。