2012-09-03 221 views
0

我的一個測試是間歇性失敗。我現在想要經常執行測試。如何在單次測試中多次執行單元測試?

我寫了一個小批處理文件

:loop 
mstest /testcontainer:"path/test.dll" /test:"mytest" 
set /a COUNT=%COUNT%+1 
if %COUNT GTR %MAX% goto end 
goto loop 

雖然這工作得很好,但輸出是沒有意義,或能說明問題。假設我運行這個測試100次,我收到了短信說

Loading ... 
Starting execution ... 
Results 
Passed/Failed 1 
-------- 
Total 1 

和100個帶有.trx文件將被創建... 100次

其實我是想是有這樣

輸出什麼
Passed 97 
Failed 3 
-------- 
Total 100 

只有一個.trx文件。

我以某種方式懷疑可能在單次測試運行中多次運行測試,因爲我沒有在mstest /help輸出上找到任何參數。

有沒有辦法創建一個儘可能接近給定請求的輸出?

+1

你真的應該專注於修復導致間歇性故障的代碼... –

+3

測試應該是確定性的,即有一個結果。軟件通常不應該像Schroedinger的Cat一樣。 –

+0

@DanielHilgarth這就是爲什麼我需要一個頻繁運行測試的批處理... – Em1

回答

0
setlocal enabledelayedexpansion 
set passed=0 
set failed=0 
for /l %%x in (1,1,%max%) do (
    mstest /testcontainer:"path/test.dll" /test:"mytest" 
    if !errorlevel!==0 (
    set /a passed=passed+1 
) else (
    set /a failed=failed+1 
) 
) 
echo Passed %passed% > %~n1.trx 
echo Failed %failed% >> %~n1.trx 
echo --------- >> %~n1.trx 
echo Total %Max% >> %~n1.trx 
endlocal 
相關問題