2017-12-29 35 views
1

私のタスクマネージャは、Visual Studio Unit TestsからC#の出力を取得しようとしています。明らかに、私たちのビルド環境は、その形式の出力ファイルを利用することができます。私はそれが可能であるという噂を聞くが、私のグーグルは空になる。Visual Studioユニットテスト - "XUnitフォーマット?"

誰もこの偉業を達成する方法を知っていますか?

+0

ない私は理解してください。 XUnitはファイル形式ではありません。これは単体テストツールです:https://xunit.github.io/ –

+0

@peter私たちは理解できない言葉を投げ捨てる人々のほんの一団でしょう。これは通常、要件がどのようになるかです:p –

答えて

1

コマンドラインからVSTestまたはMSTestでテストを実行して、テスト結果を含む.trxファイルを作成できます。これは、Visual Studio Unit Testの出力に使用される標準形式です。

1

他の答えで述べたように、MSTest.exeは、xUnitが解析できるtrxファイルを生成します。

すべてのプロジェクトをビルドするスクリプトが1つあれば、すべてのテストを実行し、すべてのテスト結果をxUnitの1つのtrxファイルに集約することができます。 すべてのテストプロジェクトの名前を '.Test'で終わらせることをお勧めします。これらのプロジェクトはすべてdllにコンパイルされ、すべてが '.Test.dll'で終わります。

その後、あなたは、このようなスクリプトでTest.dllのファイルのためのあなたのレポを検索することで、すべてのテストプロジェクトを拾うためにあなたのビルドスクリプトを更新することができます。

@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