ジェイの説明は正しいです。これは、このタスクをそのままでは不可能にする 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" />