0

追いかけるために、TeamCity .NETNUnitLauncherはMicrosoftcsprojファイルを処理できますか?

私は次の理由でこの質問をします。

NANTビルドスクリプトがあります。このスクリプトには、nunit-console.exe(NUnit v2.5.2に付属)を使用するテストがいくつかあります。

Nantビルドファイルのテストの例は次のとおりです。

<target name="x.Commons.Tests" depends="xCore">
<exec program="${nunit-console.exe}" commandline="${nunit-console.args} Core\x.Commons.Tests\x.Commons.Tests.csproj" failonerror="${nunit-console.failonerror}"/>
 </target>

FailOnErrorはfalseに設定され、nunit-console.argsは'/nologo'に設定されます。

ローカルマシンでこれらのテストを実行すると、テスト出力が得られます。ただし、NAntビルドファイルをビルドするようにTeamCityに指示し、テストターゲットを処理するように指示すると、TeamCityへのテスト出力が得られません。ログで、nunit-colsole.exeがテスト結果の出力を生成していることがわかりますが、TeamCityダッシュボードにこれが表示されていません。

周りを読んだ後、TeamCityにこの入力を取得するには追加の手順が必要であることを示すいくつかの記事を見つけました。したがって、テストを次のように変更しました。

    <target name="x.Configuration.Tests" depends="xCore">
  <mkdir dir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <copy file="${teamcity.dotnet.nunitaddin}-2.5.0.dll" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <copy file="${teamcity.dotnet.nunitaddin}-2.5.0.pdb" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
  <exec program="${nunit-console.exe}" commandline="${nunit-console.args} Core\x.Configuration.Tests\x.Configuration.Tests.csproj" failonerror="${nunit-console.failonerror}"/>
 </target>

タグに「addins」のエントリが含まれていることも確認したことに注意してください。

ただし、前と同じように、nunit-console.exeがログに結果を表示しているので、テストが機能していることがわかりますが、TeamCityへの出力はありません。

私の質問への回答、または助けをいただければ幸いです!

4

2 に答える 2

1

使用する

<copy file="${teamcity.dotnet.nunitaddin}-2.5.2.dll" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>
<copy file="${teamcity.dotnet.nunitaddin}-2.5.2.pdb" todir="C:\Tools\NUnit\bin\net-2.0\addins"/>

NUnitバージョンのTeamCityアドインは、NUnitバージョンと一致する必要があります。TeamCityバージョンがNUnit2.5.2をサポートしているかどうかを確認するか、新しいビルドをダウンロードしてください。

于 2009-11-06T12:05:13.110 に答える
1

これを行う方法は、.csproj ファイルで NUnit テストを自動的に取得する TeamCity の機能を利用することです。

  • まず、MSBuild Community Tasksをインストールする必要があります。
  • 次に、.csproj ファイルを次のように設定します。

    • <Project> の直後にこれを入れる

      <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

    • アイテム グループを作成します。

      <ItemGroup> <TestAssembly Include="path/to/binary.dll" /> </ItemGroup>

    • NUnit ターゲットを作成します。

      <Target Name="NUnit"> <NUnit Assemblies="@(TestAssembly)" /> </Target>

  • 次に、TeamCity のプロジェクト設定の「ランナー」部分で、MSBuildをランナーとして選択し、[ターゲット]フィールドでビルドnunitの両方をターゲットとして指定します。

    ターゲット:ビルド nunit

TeamCity は、次のビルドで単体テストを自動的に取得する必要があります。

于 2009-11-05T12:06:24.503 に答える