2012-09-03 2 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

테스트는 결정적이어야합니다. 즉, 하나의 결과가 있어야합니다. 소프트웨어는 대개 슈뢰딩거의 고양이처럼 행동해서는 안됩니다. –

+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 
관련 문제