4

現在のプロジェクトで初めて opencover を使用してみましたが、mstest プロジェクトで動作するようになりました。ただし、opencover 出力 xml が同じアセンブリを 2 回分析しようとしているように見えるという問題があります。また、分析の 1 つが 0% のコード カバレッジ (これは間違っています) を示しているのに対し、もう 1 つの分析は 85% に近い (これは正しい) ことも注目に値します。

私の opencover コマンドは次のようになります。

"opencover.console.exe" -register:user -target:"C:\Program Files (x86)\Microsoft visual Studio 10.0\Common7\IDE\mstest.exe" -output:"C:\temp\coverage.xml" -targetargs:"/testcontainer:MyTestAssembly.dll" -filter:+[MyAssembly]MyNamespace.MyClassName

これは、単一のアセンブリと、そのアセンブリ内の単一のクラスを参照しています。ただし、xml 出力には、同じハッシュを持つ 2 つのモジュール セクションがあります。興味深いことに、最初のモジュールには "\bin\Debug\MyAssembly.dll" フォルダー内のアセンブリを指す FullName があり、2 番目のモジュールは "C:\temp\TestResults...\Out\MyAssembly" 内の出力アセンブリを指しています。 .dll".

何か案は?

マット

4

1 に答える 1

9

-mergebyhash スイッチを使用する必要があります。これはWIKI/USAGEに記載されています。

これは、mstest が別の場所でアセンブリを 2 回開くためです。1 回は元の場所に移動し、次に test フォルダーに移動します。

このオプションは、ファイル ハッシュによってアセンブリを比較し、以前に読み込まれたアセンブリのシーケンス ポイントの識別子を再利用することを opencover に強制します。PDB が見つからない場合は、-targetdir を使用して、PDB が含まれるフォルダーを指す必要がある場合もありますが、通常は追加の支援なしで PDB を見つけます。

于 2011-12-18T03:35:44.143 に答える