6

Cake Script を使用して Xunit で記述されたテスト ケースを実行するために Cake スクリプトを使用しようとしています。成功したテスト ケースと失敗したテスト ケースの数を知る必要があります。

#tool "nuget:?package=xunit.runner.console"
var testAssemblies = GetFiles("./src/**/bin/Release/*.Tests.dll");
XUnit2(testAssemblies);

参考: http: //www.cakebuild.net/dsl/xunit-v2

成功したテストケースと失敗したテストケースの数を取得する方法を誰か提案できますか?

4

2 に答える 2

1

ほとんどのテスト ランナーと同様に、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 レポートに変換します。

于 2016-11-16T21:24:24.730 に答える