5

我正在尝试使用 mstest 测试来获得代码覆盖率。我正在使用 PartCover 2.2.0.36424。

问题在于真正的程序集,我得到 0% 的代码覆盖率(注意:所有测试都通过)。
在我创建的演示源的演示测试中,它运行良好(报告很有意义)。

我注意到在日志文件中:
对于演示文件,在“Assembly AAAAAA loaded (MyTestesAssemblyName)”行之后,有一行“Class NNNNNN loaded (MyTestesAssemblyName.MyClassname)”;
对于真正的文件,在汇编行之后没有第二行(用于类)。

有什么想法在我们的程序集中有什么不同吗?(注:未签名)

10 倍。

4

2 回答 2

7

我遇到了同样的问题。我检查了 fuslogvw.exe,因为我知道 mstest.exe 可以在 vstesthost.exe 中运行您的测试代码。mstest.exe 只是加载我的反射代码,这就是它在 PartCover 报告中显示为 0% 的原因。

为了解决这个问题,我通过 partcover.exe 为 mstest.exe 指定了 /noisolation 参数。但是,需要注意的一件事是,您似乎必须引用您指定的所有参数才能传递给 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 操作系统)

于 2009-07-02T07:52:04.520 回答