我正在尝试使用mstest测试获得代码覆盖率。 我正在使用PartCover 2.2.0.36424。
问题在于真正的程序集,我得到0%的代码覆盖率(注意:所有测试都通过) 在我创建的演示源的演示测试中,它工作正常(报告很有意义)。
我注意到在日志文件中:
对于演示文件,在“装配AAAAAA(MyTestesAssemblyName)”行后,有“NNNNNN类加载(MyTestesAssemblyName.MyClassname)”行;
对于真实文件,在装配线之后没有第二行(用于类)。
我们的装配有什么不同的想法吗? (注意:它们没有签名)
10倍。
答案 0 :(得分:7)
我遇到了同样的问题。我检查了fuslogvw.exe,因为我知道mstest.exe可以在vstesthost.exe中运行你的测试代码。 mstest.exe只加载了我的反射代码,这就是它在PartCover报告中显示为0%的原因。
要解决此问题,我通过partcover.exe将/ noisolation参数指定给mstest.exe。但是,有一点需要注意,您似乎必须引用指定的所有参数传递给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
答案 1 :(得分:1)
检查是否已添加--include [*] *命令行参数并检查测试过程是否已编译为在x86上运行(如果使用x64操作系统)