在我们的项目中,我们使用NCover来衡量我们的代码覆盖率。如果我们测量使用Moles的测试,则不测量这些类的代码覆盖率(0%)。 这与使用.NET分析器的Moles和NCover有关。 在互联网上进行了一些搜索后,我在命令提示符下尝试了以下操作,但没有任何结果:
set COR_PROFILER={3FB1CC1E-1C17-4A37-9C18-BF3DB8F10E46} moles.runner.exe /pi:Dispatch /r:"C:\Program Files\NCover\NCover.Console.exe" "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /args:/testcontainer:..\Bin\TestLib.dll"
COR_PROFILER
背后的数字是我之前在regsvr注册的NCover.Lib.x86.dll
GUID。另外,将COR_ENABLE_PROFILING=1
添加为env.var也无济于事。
是否有人将此分析器链接起作用或具有.NET分析器链接的经验?
答案 0 :(得分:1)
我挖掘并找到了一种方法,在至少一个使用Moles上下文的简单示例中使用NCover。看看这个主题:http://www.ncover.com/forum/show_topic?id=1191
答案 1 :(得分:0)
Ruud,
不幸的是,Moles和NCover目前不兼容。问题在于NCover设置了一些环境变量,Moles随后在分析会话期间重置为自己使用。这绝对是需要解决的问题。您可以尝试让Microsoft的人员考虑解决此问题的方法。
答案 2 :(得分:0)
您是否尝试过CLRMONITOR_EXTERNAL_PROFILERS环境变量?
set CLRMONITOR_EXTERNAL_PROFILERS={3FB1CC1E-1C17-4A37-9C18-BF3DB8F10E46}
然后运行ncover以正常方式调用mstest
我在OpenCover中成功使用了这项技术,请参阅No Coverage for Moles Tests on x64 Windows Server 2003