2017-12-29 20 views
1

내 작업 마스터가 Visual Studio Unit Tests에서 C#에 대한 출력을 얻으려고했습니다. 분명히 우리의 빌드 환경은 그 형식의 출력 파일을 사용할 수 있습니다. 가능하다는 소문이 들리지만 내 인터넷 검색은 비어 있습니다.Visual Studio 유닛 테스트 - "XUnit 형식?"

누구든지이 위업을 수행하는 방법을 알고 있습니까?

+0

이해가 확실하지합니다. XUnit은 파일 형식이 아닙니다. 그것은 단위 테스트 도구입니다 : https://xunit.github.io/ –

+0

@peter 아마도 우리는 우리가 이해하지 못하는 용어를 던지는 사람들의 무리 일 것입니다. 이것이 요구 사항이 일반적으로 수행되는 방식입니다. –

답변

1

테스트 결과를 사용하여 .trx 파일을 만들려면 명령 줄에서 VSTest 또는 MSTest으로 테스트를 실행할 수 있습니다. Visual Studio Unit Test 출력에 사용되는 표준 형식입니다.

1

다른 답변에서 언급했듯이 MSTest.exe는 xUnit이 구문 분석 할 수있는 trx 파일을 생성합니다.

모든 프로젝트를 빌드하는 스크립트가 하나있는 경우 모든 테스트를 실행하고 모든 테스트 결과를 xUnit에 대한 하나의 trx 파일로 집계 할 수 있습니다. 모든 테스트 프로젝트의 이름을 '.Test'로 끝내는 것이 좋습니다. 이 모든 프로젝트는 DLL로 컴파일되며 모두 '.Test.dll'로 끝납니다.

그럼 당신은 이런 스크립트에서 Test.dll에 파일에 대한 당신의 repo를 검색하여, 모든 테스트 프로젝트를 선택하는 빌드 스크립트를 업데이트 할 수 있습니다

@SET _config=Release 

@call "%VS110COMNTOOLS%vsvars32" 
@setlocal enabledelayedexpansion enableextensions 
@set list= 
@for /R ".." %%x in (obj) do @(
    @set CTD=%%x 
    @pushd !CTD! 
    @for %%y in (%_config%\*Test.dll %_config%\*Tests.dll) do @set list=!list! /testcontainer:%%x\..\bin\%%y 
    @popd 
) 2>nul 

@set list=%list:~1% 

@del results.trx 2>nul 
mstest %list% /resultsfile:results.trx /detail:stdout 
@IF NOT %ERRORLEVEL%==0 (GOTO lbl_error) 

:lbl_success 
@ECHO Successfully ran tests. 
@GOTO lbl_end 

:lbl_error 
@ECHO Failed to run tests. 
@EXIT /b 1 
관련 문제