19

Hudsonを MS Testと統合することは可能ですか?

現在、Hudson を使用して開発マシンに小さな CI サーバーをセットアップしています。これは、いくつかの統計情報 (つまり、 FxCopとコンパイラの警告) を取得できるようにするためです。もちろん、単体テストを実行してその出力を表示できればいいのですが。

これまで、次のバッチ タスクを Hudson に追加しました。これにより、テストが適切に実行されます。

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll

ただし、私の知る限り、Hudson はまだ MS テスト結果の分析をサポートしていません。によって生成された TRX ファイルをJUnitまたはNUnit のMSTest.exe結果形式に変換できるかどうか(これらは Hudson でサポートされているため)、または MS Test 単体テストを Hudson と統合する他の方法があるかどうかを知っている人はいますか?

4

5 に答える 5

17

私はこれをガイドとして書いてプラグインを開発するつもりでしたが、私はそれに慣れていません。私はこの質問が古いことを知っていますが、他の誰かが同じことを望んでいると確信しているので、ここにあります。

ハドソンのプロジェクト構成では:

Windowsバッチコマンドを実行する


SET MSTest="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe"
SET XSLParser="C:\MsBuildNunit\msxsl.exe"

SET TestDLL=path-to-your-test-projects.dll
SET TestOutFILE=TestResults\some-unique-filename.trx
SET TransformedOutputFile=%TestOutFILE:.trx=%.xml
SET XSLFile=c:\MsBuildNunit\MSBuild-to-NUnit.xslt

MKDIR TestResults

%MSTest% "/testcontainer:%TestDLL%" /nologo /resultsfile:%TestOutFILE% 

%XSLParser% %TestOutFILE% %XSLFile% -o %TransformedOutputFile%

SET ERRORLEVEL=0

次に、[NUnitテスト結果レポートを公開する]チェックボックスをオンにし、[テストレポートXML]に次のように入力します。

TestResults/*.xml

C:\ MsBuildNunitにはXSLTがあり、Microsoftのmsxsl.exeもあります。

ここからMSBuild-to-NUnit.xsltをダウンロードし、ここでMicrosoftからmsxsl.exeを取得 するか、ここでxsltとexeを含むMsBuildNunitフォルダーのzip形式のコピーを取得できます

実行すると、MSTest.exeが呼び出され、テストが実行され、Microsoftのtrx(xml)形式で形式が出力されます。次に、xsltとtrxを使用してmsxsl.exeを呼び出し、それをnunitsxml形式に変換します。ビルドの最後に、Hudsonは他のNunitテスト結果と同じようにそれを取得し、準備が整います。

追加するために編集:言及するのを忘れました。このxsltを使用すると、完全なテスト結果が得られます。複数のテストプロジェクトと複数のdllがあり、トレンドグラフ、名前によるテストの表示、テストのステータスの表示、エラーの場合はスタックトレースとともにエラーメッセージを表示する機能を備えた優れたフィードバックを取得します。基本的に、Nunitで得られるほとんどすべてのもの。

編集(再度):変換にテスト期間を追加したので、ハドソンに表示されます!私たちのテストにはうまく機能しているようです。

編集:私は新しいMSTestプラグインを試しましたが、現在、複数のTRXファイルの解析をサポートしていません。1つだけです。したがって、現在、これは、MSTestを介して実行する必要のある複数のテストアセンブリがある場合の唯一のソリューションです。

于 2009-02-04T16:22:40.907 に答える
16

Hudson には、MSTest 用の新しいプラグインがあります。.trx ファイルの場所を指定するだけで、作業は完了です。プラグインが Allen のソリューションを使用したとしても、私は驚かないでしょう。

于 2009-02-10T07:11:44.083 に答える
2

「hangy's」コマンドラインのバリエーションとMSTestプラグインを使用して、テストケースを正常に実行および分析/公開することができました。私が行った最大の変更は、mstest.exeの出力ファイルを指定し、MSTestプラグインがそのファイルを使用するようにすることでした(ワイルドカードは使用できません...実際のファイル名である必要があります)。たとえば、以下は私のカスタムビルドステップです。

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:MyProject1.Test/bin/Debug/MyProject1.Test.dll  /testcontainer: MyProject2.Test/bin/Debug/MyProject2.Test.dll /resultsfile:TestResults\HudsonJobTestResults.trx

出口0

「結果ファイル」はジョブのワークスペースに関連していることに注意してください。したがって、解析するMSTestプラグインの結果ファイルは次のとおりです。

TestResults\HudsonJobTestResults.trx

以上です!

于 2009-07-06T17:42:27.133 に答える
0

Hudson には、汎用データのプロットに使用できるプロット プラグインがあります。グラフごとに複数のデータ ポイントがある場合、構成して使用するのが最も簡単なプラグインではありませんが、MS Test の出力を解析してプラグインの入力ファイルを生成できれば、少なくとも失敗、成功、失敗の傾向をプロットできます。合計テスト。

于 2008-12-09T13:36:10.227 に答える
0

Hudson を使用して、歴史的な目的で MS テスト結果の分析を実行することはできませんでしたが、少なくとも、MSBuild と Exec タスクを使用すると、Hudson ビルドが適切に「いずれかのテストが失敗した場合は、失敗しました。

<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe" /testcontainer:"MyAssembly.dll"" />
于 2009-01-20T01:06:16.363 に答える