OpenCover能否通过Microsoft.Moles.Runner和Nunit获得代码覆盖率?

OpenCover能否通过Microsoft.Moles.Runner和Nunit获得代码覆盖率?,nunit,moles,opencover,Nunit,Moles,Opencover,我正在使用OpenCover和Visual Studio2010 professional。 它在命令行上与NUnit配合得很好 OpenCover.Console.exe -register:user -target:"C:\bin\NUnit 2.6\bin\nunit-console.exe" -targetargs:"C:\App\Test\ApplicationTest\bin\Debug\ApplicationTest.dll" -targetdir:"C:\App\bin\Deb

我正在使用OpenCover和Visual Studio2010 professional。 它在命令行上与NUnit配合得很好

OpenCover.Console.exe -register:user -target:"C:\bin\NUnit 2.6\bin\nunit-console.exe" -targetargs:"C:\App\Test\ApplicationTest\bin\Debug\ApplicationTest.dll"  -targetdir:"C:\App\bin\Debug" -output:html\result.xml
结果如下

NUnit控制台版本2.6.0.12051版权所有(C)2002-20011查理
普尔。版权所有(C)2002-2004詹姆斯·W·纽柯克,迈克尔·C·二,
阿列克谢·沃龙佐夫。版权所有(C)2000-2002菲利普·克雷格。所有权利
保留。

运行时环境-操作系统版本:Microsoft Windows NT 6.1.7601
Service Pack 1 CLR版本:4.0.30319.269(Net 4.0)

ProcessModel:默认域用法:单执行运行时:
net-4.0。。测试运行:2,错误:0,失败:0,不确定:0,
时间:42.14秒未运行:0,无效:0,忽略:0,跳过:0

承诺。。。访问了175个班级中的59个(33.7142857142857)访问了
方法4131人中的268人(6.48753328491891人)访问了71763人中的15137点
(21.0930423755975)访问了8025(2.44236760124611)中的196家分支机构

==替代结果(包括所有方法,包括那些没有
对应的数据源)===207个可选访问类中的59个
(28.5024154589372)替代访问方法4371中的284
(6.49736902310684)

但是,它不适用于Microsoft.Moles

OpenCover.Console.exe -register:user -target:"C:\Program Files\Microsoft Moles\bin\moles.runner.x86.exe" -targetargs:"""C:\App\Test\ApplicationTest\bin\Debug\ApplicationTest.dll""  /r:""C:\bin\NUnit 2.6\bin\nunit-console.exe""" -targetdir:"C:\App\bin\Debug" -output:html\result.xml
这一结果如下

Microsoft Moles Runner v0.94.51023.0--
-- . NET v4.0.30319版权所有(c)
微软公司2007-2010。保留所有权利。

检测…已开始
NUnit控制台版本2.6.0.12051
CLR版本:4.0.30319.269(Net 4.0)

ProcessModel:默认域用法:单执行运行时:
net-4.0。。测试运行:2,错误:0,失败:0,不确定:0,
时间:28.004秒未运行:0,无效:0,忽略:0,跳过:0

承诺。。。访问类0(共2(0)访问方法0(共14(0)
到访点0/45(0)到访分支机构0/2(0)

==备选结果(包括所有方法,包括没有相应结果的方法
来源)==2(0)中的备选访问类别0
16(0)中的备选方法0

测试结果都是正确的,但没有覆盖范围

我试图更改moles的参数,例如“/args:”/domain=Multiple“,-oldType等,但它从来都不起作用

有人注意到我该做什么吗?
OpenCover能用Nunit的痣吗?

我自己解决了这个问题。 首先,将下面的代码添加到批处理文件中或将其设置为命令行命令

设置CLRMONITOR_EXTERNAL_Profiler={1542C21D-80C3-45E6-A56C-A9C1E4B7B8}


此链接可能会有所帮助

我自己解决了这个问题。 首先,将下面的代码添加到批处理文件中或将其设置为命令行命令

设置CLRMONITOR_EXTERNAL_Profiler={1542C21D-80C3-45E6-A56C-A9C1E4B7B8}


此链接可能会有所帮助

我自己解决了这个问题。首先,在下面添加<代码>设置CLRMONITOR_EXTERNAL_PROFILERS={1542C21D-80C3-45E6-A56C-A9C1E4BB7B8}我知道NUnit版本更重要。v2.5.2工作正常。但是v2.6不是。这已经在以前的stackoverflow问题中讨论过了-这里的问题是moles也是一个重写探查器,因此两者冲突-但是你可以通知moles它需要“链接”到opencover(或任何其他探查器),以便两者同步工作。我非常感谢你的评论。我自己解决了这个问题。首先,在下面添加<代码>设置CLRMONITOR_EXTERNAL_PROFILERS={1542C21D-80C3-45E6-A56C-A9C1E4BB7B8}我知道NUnit版本更重要。v2.5.2工作正常。但是v2.6不是。这已经在以前的stackoverflow问题中讨论过了-这里的问题是moles也是一个重写探查器,因此两者冲突-但是您可以通知moles它需要“链接”到opencover(或任何其他探查器),以便两者同步工作。我非常感谢您的评论。