5

mstest テストでコード カバレッジを取得しようとしています。PartCover 2.2.0.36424 を使用しています。

問題は実際のアセンブリにあります。コード カバレッジは 0% です (注: すべてのテストに合格しています)。
私が作成したデモ ソースのデモ テストでは、問題なく動作しました (レポートは理にかなっています)。

ログ ファイルで次のことに気付きました。
デモ ファイルの場合、「アセンブリ AAAAAA がロードされました (MyTestesAssemblyName)」という行の後に、「クラス NNNNNN がロードされました (MyTestesAssemblyName.MyClassname)」という行があります。
実際のファイルの場合、アセンブリの行の後に (クラスの) 2 行目はありません。

私たちのアセンブリの違いについて何か考えはありますか? (注:署名はありません)

10倍。

4

2 に答える 2

7

私も同じ問題を抱えていました。mstest.exeがvstesthost.exe内でテストコードを実行できることを知っているので、fuslogvw.exeをチェックしました。mstest.exeは、リフレクションのためにコードをロードするだけでした。そのため、PartCoverレポートに0%として表示されていました。

これを修正するために、partcover.exeを介してmstest.exeに/noisolationパラメーターを指定しました。ただし、注意すべき点が1つあります。これは、mstest.exeに渡すために指定したすべてのパラメーターを引用符で囲む必要があるようです。

これが私が機能することを知っている実際のコマンドラインです:

partcover --target \path\to\MSTest.exe --include [*]* --target-args "/noisolation /testcontainer:myut.dll" --target-work-dir \path\to\workingdir --output C:\tmp\PartCoverResults.xml
于 2010-04-22T05:30:46.800 に答える
1

--include [*] *コマンドライン引数を追加したことを確認し、テストプロセスがx86で実行するようにコンパイルされていることを確認します(x64 OSが使用されている場合)

于 2009-07-02T07:52:04.520 に答える