10

以下のように開いたカバーを実行しようとしています

opencover.console.exe -target:"C:\Users\rkapiset\Downloads\xunit-1.8\xunit.console.clr4.x86.exe" -targetargs:"""E:\Office\CRM\dotnet\1 - UI \EYC.CRM.UI.Tests\bin\Debug\EYC.CRM.UI.Tests.dll""" -filter:+[EYC]* -output:coverage.xml

以下は結果です

合計 61、失敗 3、スキップ 0、1.674 秒
訪問したクラス 0 の 0 (NaN)
訪問したメソッド 0 の 0 (NaN)
訪問したポイント 0 の 0 (NaN)
未訪問のクラス 未訪問の
メソッド

私が間違っているヒントはありますか?前もって感謝します。

4

3 に答える 3

8

これを機能させるには、いくつかの鍵があります。

  1. 開いたカバーを見つける
  2. xunit.console.exe を使用するように指示します
  3. targetargs を使用して xunit.console.exe の引数を指定します
  4. テスト dll とアプリケーション dll の両方のデバッグ バージョンを xunit に渡す
  5. xunit にシャドウコピーを使用しないように指示します (そのため、すべての PDB デバッグ ファイルが作業ディレクトリで利用可能になります)。
  6. バックスラッシュを使用して、targetargs のパス内のコメント引用符
  7. 「.Tests」プロジェクトのクラスをカバレッジから除外します
  8. -register を使用して魔法のようなことをする
  9. 管理者として実行 (マシンで UAC がオフになっている場合は問題ありません)

例:

"C:\OpenCover.4.6.166\tools\OpenCover.Console.exe" -output:"C:\MyProject\coverage.xml" "-target:C:\MyProject\packages\xunit.runner.console.2.0.0\tools\xunit.console.exe" -targetargs:"\"C:\MyProject\Project.Tests\bin\Debug\Project.Tests.dll\" \"C:\MyProject\Project\bin\Debug\Project.exe\" -noshadow" -filter:"+[*]Project.* -[*.Tests]*" -register

引用: http://derekwilson.net/derekblog/post/2012/05/29/Using-OpenCover-and-xUnit.aspx

于 2015-09-25T00:39:58.290 に答える
4

プロファイラーの登録はお済みですか?

-registerスイッチを試すか、UAC の下にある場合は-register:user

すべてのスイッチはOpenCover Wikiで説明されています

代わりに、インストールされたプログラム ファイルフォルダーの x86 および x64 フォルダーにある各プロファイラー OpenCover.Profiler.dll で regsvr32 を使用できます。

于 2011-07-24T09:12:57.377 に答える
0

コードに -register:user を追加してみてください。これが失敗する場合は、Microsoft Visual C++ 2010 Redistributable Package (x86) が不足している必要があります。. これはここで説明されています

于 2012-09-22T11:29:24.383 に答える