解決済み: 作業構成については、この質問の下部を参照してください
.NET 4.0 C# プロジェクトの FinalBuilder プロジェクトで使用するために NCover をセットアップしようとしていますが、最終的なカバレッジ出力ファイルにカバレッジ データが含まれていません。
私は使っている:
すべてのツールは、今日の最新の公式です。
最終的に、.NET 4.0 プロジェクトの NCover で単体テストを実行するように FB を誘導することができたのでTests run: 184, ...
、正しい .
ただし、Coverage.xml
NCover からの最終的なファイル出力はほとんど空で、次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.3.2.6211" driverVersion="3.3.2" exportversion="3" viewdisplayname="" startTime="2010-04-22T08:55:33.7471316Z" measureTime="2010-04-22T08:55:35.3462915Z" projectName="" buildid="27c78ffa-c636-4002-a901-3211a0850b99" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml" viewfilterstyle="None" viewreportstyle="SequencePointCoveragePercentage" viewsortstyle="Name">
<rebasedpaths />
<filters />
<documents>
<doc id="0" excluded="false" url="None" cs="" csa="00000000-0000-0000-0000-000000000000" om="0" nid="0" />
</documents>
</coverage>
FB ログの出力は次のとおりです。
...
***************** End Program Output *****************
Execution Time: 1,5992 s
Coverage Xml: C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml
NCover Success
NCover の FB ステップの構成:
- 何をカバーしますか?: NUnit テスト カバレッジ
- コマンド:
C:\Program Files (x86)\NUnit 2.5.4\bin\net-2.0\nunit-console.exe
- コマンド引数:
LVK.IoC.Tests.dll /noshadow /framework:4.0.30319 /process=single /nothread
/process
注: オプションと/nothread
オプションを使用して、または使用せずに試しました
- 作業ディレクトリ:
%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug
- プロファイリングするアセンブリのリスト:
%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug\LVK.IoC.dll
- 注:拡張子の有無にかかわらず、アセンブリの名前をリストしてみました。
FB ステップのドキュメントは役に立ちません。各プロパティの簡単な説明しか記載されておらず、例やトラブルシューティングのヒントが記載されていないためです。
カバレッジの結果を NDepend にプルしてビルド時の分析を実行したいので、そのファイルに必要な情報を含めたいと思います。
私も TestDriven を使用しています。ソリューション ファイルを右クリックして [NCover でテスト] を選択すると、NCover-explorer がカバレッジ データと共に開きます。上記と同じ構造の.xmlファイルに、そこにあるはずのすべてのデータが含まれているため、私が持っているツールは確かにそれを作成できます。
ここで私が間違って設定したことを誰かが知っていますか?
解決済み: 次の構成が最終的に機能しました。ビルドの開始結果ページにコード カバレッジの基本統計が生成され、すべての詳細レポートへのリンクが含まれます。
単体テスト プロジェクトには、テスト対象のプロジェクトと同じ名前を付け、.Tests サフィックスのみを付けて名前を付けているため、それらをコード カバレッジから除外しました。また、独自のアセンブリ (すべて LVK で始まるもの) のみを明確に含める必要がありました。そうしないと、TeamCity ランナーによっていくつかのアセンブリが読み込まれ、カバレッジ統計にわずかに影響を与えました。
まず、最新のツールをインストールしました(この編集の時点で):
- Nカバー 3.4.8
- チームシティ 5.1.2
- NUnit 2.5.5
TeamCity のビルド画面の構成は次のとおりです。
- ターゲット: 再構築
- 構成: デバッグ
- プラットフォーム: 任意の CPU
- .NET カバレッジ ツール: NCover (3.x)
- .NET ランタイム: .NET Framework 4.0、バージョン: ネイティブ
- NCover 3 へのパス: %system.ncover.v3.x64.path% (これは Windows 2008 Server R2 64 ビットです)
追加の NCover 引数:
//ias LVK.* //eas .*Tests //eas LVK\.CodeQuality //ea LVK\.CodeQuality\.IgnoreCodeCoverageAttribute
追加の NCover レポート引数:
//or FullCoverageReport:Html:{teamcity.report.path}
NUnit ランナー: NUnit 2.5.5
- .NET ランタイム プラットフォーム: 自動 (MSIL)、バージョン: 4.0
- 以下からテストを実行します: **\bin\Debug*Tests.dll