3

解決済み: 作業構成については、この質問の下部を参照してください


.NET 4.0 C# プロジェクトの FinalBuilder プロジェクトで使用するために NCover をセットアップしようとしていますが、最終的なカバレッジ出力ファイルにカバレッジ データが含まれていません。

私は使っている:

すべてのツールは、今日の最新の公式です。

最終的に、.NET 4.0 プロジェクトの NCover で単体テストを実行するように FB を誘導することができたのでTests run: 184, ...、正しい .

ただし、Coverage.xmlNCover からの最終的なファイル出力はほとんど空で、次のようになります。

<?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
4

2 に答える 2

1

私の知る限り、NCover は .NET 4.0 のテストをカバーできません。彼らは .NET 4.0 の新しいバージョンを発表しましたが、まだありません。

この件に関する情報はこちらでご覧ください。個人的には、私はこのタスクの経験がありません...

更新: 彼らは .NET 4.0 をサポートする NCover 3.4 をリリースしました。おそらくあなたはそれを試してみてください。

于 2010-04-22T19:43:42.490 に答える
0

このスレッドからあなたの答えを見つけました: NUnit は Visual Studio 2010 コードを実行していません

nunit-console-x86.exe.config ファイルに、以下<configuration>を追加します。

<startup>
  <requiredRuntime version="v4.0.30319" />
</startup>

追加<runtime>

<loadFromRemoteSources enabled="true" />

私のためにそれを修正しました。ただし、FinalBuilder ではなく TeamCity を使用しています。

NCover 3.4 も使用しています。

于 2010-04-28T08:20:00.010 に答える