3

TeamCity 8 では、NUnit 実行の結果ファイルを作成/検索するにはどうすればよいですか?

現在、TRX ファイルを生成する MsTest も実行しています。次に、TRX->HTML レポート ツールを使用して、管理の食物連鎖にレポートを渡します。TeamCity の NUnit で同じことを行うにはどうすればよいでしょうか?

現在、NUnit を CommandLine ビルド ステップとして実行する必要があると考えていますが、NUnit アドインがあり、MsTest アドインが「結果ファイル:」オプションを提供してくれることを考えると、それはおかしいように思えます。

4

2 に答える 2

3

ジェイの説明は正しいです。これは、このタスクをそのままでは不可能にする TeamCity の動作です。

ただし、既知の回避策があります。

http://devnet.jetbrains.com/message/5218450#5218450

基本的に、TeamCity NUnit ランナーを手動で (MSBuild などから) 呼び出します。その後、ランナーは result.xml ファイルを出力できます (テスト アセンブリごとに 1 つ)。の動作をシミュレートするには、これらの結果ファイルを 1 つにマージする必要がありnunit-consoleます。

Davy Brion は、このための MSBuild タスクも投稿しています。

http://web.archive.org/web/20080808215345/http://davybrion.com/blog/2008/07/using-teamcitys-nunit-support-while-keeping-the-output-around/

http://web.archive.org/web/20080809002009/http://davybrion.com/blog/stuff/

それ以来、彼は自分のブログを核攻撃したので、ウェイバックマシンが救助に向かった。これらのリンクも無効になった場合に備えて、スニペットを次に示します。

NUnitMergeOutput

このタスクは、複数の NUnit xml レポートの出力を 1 つの結合 xml レポートに結合します。
結合されたレポートには、フィードされた各 xml レポートの結果が含まれ、テストの総数、失敗、期間、およびテスト実行全体の全体的な成功ステータスが含まれます。

タスクを定義するには:

<UsingTask AssemblyFile="$(MSBuildProjectDirectory)\Libs\Brion.MSBuildTasks\Brion.MSBuildTasks.dll"
           TaskName="NUnitMergeOutput"/>

そしてそれをターゲットで使用するには:

<CreateItem Include="TestResults\*.xml" >
  <Output TaskParameter="Include" ItemName="NUnitOutputXmlFiles"/>
</CreateItem>

<NUnitMergeOutput NUnitOutputXmlFiles="@(NUnitOutputXmlFiles)"
                  PathOfMergedXmlFile="TestResults\TestResults.xml" /> 

BuildTeamCityNUnitArguments

TeamCity では、ビルド後に NUnit 出力 xml ファイルを保持しながら、統合された NUnit テスト サポートを有効にすることは簡単ではありません。このタスクは、TeamCity の NUnitLauncher タスクに渡す xml 引数ファイルを準備します。これにより、指定できるディレクトリに NUnit 出力 xml を保持できます。この問題の詳細についてはこちら、回避策の詳細についてはこちらをご覧ください。

タスクを定義するには:

<UsingTask AssemblyFile="$(MSBuildProjectDirectory)\Libs\Brion.MSBuildTasks\Brion.MSBuildTasks.dll"
        TaskName="BuildTeamCityNUnitArguments"/>

そしてそれをターゲットで使用するには:

<CreateItem Include="**\Bin\Debug\*Tests*.dll" >
  <Output TaskParameter="Include" ItemName="TestAssemblies" />
</CreateItem>

<BuildTeamCityNUnitArguments HaltOnError="true" HaltOnFirstTestFailure="true"
                            HaltOnFailureAtEnd="true" TestAssemblies="@(TestAssemblies)"
                            NUnitResultsOutputFolder="TestResults"
                            PathOfNUnitArgumentsXmlFile="nunitarguments.xml" />


<Exec Command="$(teamcity_dotnet_nunitlauncher) @@ nunitarguments.xml" />
于 2014-02-25T19:24:07.947 に答える