我想通過MS Test(從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