1

最近、NUnit を Visual Studio C# プロジェクトに導入しました。プロジェクトのフォルダ構造は次のようになります

- project root
-- applications (rich client interface, web interface, small tools)
-- components   (business logic)
-- vendor       (3rd party components)
-- tests        (Nunit tests)

アプリケーションまたはコンポーネントの下の各 Visual Studio プロジェクト "MyProject" には、"MyProject.Test" という名前のテストの下に対応するプロジェクトがあります。NUnit テストを導入したとき、各 .Test.csproj ファイルに以下を入れました。

<Target Name="AfterBuild">
  <CreateItem Include="$(TargetPath)">
    <Output TaskParameter="Include" ItemName="MyProjectTests" />
  </CreateItem>
  <!-- Create folder for test results -->
  <MakeDir Directories="$(OutDir)\TestResults" />
  <!-- Run tests-->
  <NUnit Assemblies="@(MyProjectTests)" ToolPath="..\vendor\NUnit\bin" OutputXmlFile=".\TestResults\MyProject.Test.Results.xml" WorkingDirectory="$(OutDir)" />
  <!-- Create HTML report -->
  <Xslt Inputs="$(OutDir)\TestResults\MyProject.Test.Results.xml" Xsl="$(MSBuildCommunityTasksPath)\NUnitReport.xsl" RootTag="Root" Output="$(OutDir)\TestResults\MyProject.Test.Results.html" />
</Target>

これは、Visual Studio 内からソリューションをビルドする場合と、MSBuild CLI を使用してビルド サーバー上でソリューションをビルドする場合の両方で正常に機能します。

このアプローチの残りの不便さは、各テスト プロジェクトの出力フォルダーの TestResults フォルダーにテスト レポートが残り、ソリューションのメイン出力フォルダーには何も残らないことです。だから、私の質問は:

結果のNUnit htmlレポートをソリューションの/スタートアッププロジェクトの出力フォルダーに収集する好ましい方法は何ですか? どの .csproj ファイルにどの MSBuild 命令を配置する必要がありますか? MSBuild を使い始めたばかりで、ベスト プラクティスがわかりません...

Visual Studio と MSBuild CLI の両方で動作する必要がありますが、問題にはならないと思います。

ありがとう

4

1 に答える 1

1

ビルド サーバーがある場合、良い方法の 1 つは、テスト フォルダーに構成された仮想パスを使用してサイトをセットアップすることです。次に、会社の誰もが、ビルド サーバーの IIS でホストされているhttp://build.companydomain.local/yourapp/nunitreports/などを参照できます (ビルド サーバーに IIS がある場合)。

私はカバレッジレポートでこれを行っています。誰でもいつでも閲覧できます。それが役立つことを願っています!

于 2012-07-17T12:19:55.163 に答える