テストが失敗したときにいつでもテスト実行を中止/中止できるように、MSテスト(Windowsコンソールから)でユニットテストを実行したい閾値。* n *失敗したテストの後にMsTestテストの実行を中止する方法
私の場合、特定の割合のテストが既に失敗した場合、テストを実行し続ける必要はありません。
私はmstest.exe実行をラップする新しいコンソールアプリケーションを作成する際に考えることができるので、私はリアルタイムで標準出力を解析することができ、 、最終的には例えば、プロセスを殺す:
var pi = new ProcessStartInfo()
{
FileName = MS_TEST,
UseShellExecute = false,
RedirectStandardOutput = true,
Arguments = MS_TEST_ARGS
};
int passed = 0; int failed = 0;
using (var process = Process.Start(pi))
{
while (!process.StandardOutput.EndOfStream)
{
string line = process.StandardOutput.ReadLine();
if (line.Contains("Passed"))
passed++;
if (line.Contains("Failed"))
failed++;
if (failed >= THRESHOLD)
{
process.Kill();
break;
}
}
}
誰もこれを行うためのより良い方法を提案することはできますか?私はこれがMsTestによってネイティブにサポートされているとは思わない。
PowerShellはオプションのようですが、標準出力リダイレクトは簡単ではありません。
更新
注意点として、私はテストコードを変更することはできません、私はどのような方法でテストコードを変更せずに行われるために、これを必要とします。
この回答のおかげで、私はテストコード:(その答えのため – thepirat000
感謝を変更することはできませんよ。それは、廃棄の問題を持っているブラックボックスのアイテムを使用してテストを私に巨大な問題を解決しました。 テストクラスにディストラクタを追加しました。そこでは、テスト結果が計算され、更新された後、プロセスが終了しました。 – Seffix