【发布时间】:2012-07-10 06:22:45
【问题描述】:
我在 Visual Studio2010 专业版中使用 OpenCover。 它在命令行上与 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-Console 版本 2.6.0.12051 版权所有 (C) 2002-20011 Charlie
普尔。版权所有 (C) 2002-2004 James W. Newkirk, Michael C. Two,
阿列克谢·A·沃龙佐夫。版权所有 (C) 2000-2002 菲利普·克雷格。版权所有
已保留。运行时环境 - 操作系统版本:Microsoft Windows NT 6.1.7601
Service Pack 1 CLR 版本:4.0.30319.269 (Net 4.0)ProcessModel:默认 DomainUsage:单次执行运行时:
net-4.0 .. 测试运行:2,错误:0,失败:0,不确定:0,
时间:42.14 秒未运行:0,无效:0,忽略:0,跳过:0提交... 已访问 175 个课程中的 59 个 (33.7142857142857) 已访问
方法 268 of 4131 (6.48753328491891) 访问点 15137 of 71763
(21.0930423755975) 访问了 8025 个分支机构中的 196 个 (2.44236760124611)==== 替代结果(包括所有方法,包括那些没有
相应的来源)==== 207 课中的第 59 课
(28.5024154589372) 替代访问方法 284 of 4371
(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 --
http://research.microsoft.com/moles -- . NET v4.0.30319 版权所有 (c)
微软公司 2007-2010。保留所有权利。仪器...开始
NUnit-Console 版本 2.6.0.12051
CLR 版本:4.0.30319.269 (Net 4.0)ProcessModel:默认 DomainUsage:单次执行运行时:
net-4.0 .. 测试运行:2,错误:0,失败:0,不确定:0,
时间:28.004 秒未运行:0,无效:0,忽略:0,跳过:0提交中... 访问过的类 0 of 2 (0) 访问过的方法 0 of 14 (0)
访问过的点 0 of 45 (0) 访问过的分支机构 0 of 2 (0)==== 替代结果(包括所有方法,包括那些没有对应的方法
来源)==== 替代访问课程 0 of 2 (0)
替代访问方法 0 of 16 (0)
测试结果都正确,但没有覆盖。
我尝试更改 moles 的参数,例如 '/args:"/domain=Multiple"'、-oldType 等,但始终无效。
有人注意到我应该做什么吗? OpenCover 可以在 Nunit 中使用痣吗?
【问题讨论】:
-
我自己解决了这个问题。首先,在下面添加。
set CLRMONITOR_EXTERNAL_PROFILERS={1542C21D-80C3-45E6-A56C-A9C1E4BEB7B8}s135.codeinspot.com/q/2342744 -
而且我知道 NUnit 版本更重要。 v2.5.2 工作正常。但 v2.6 不是。
-
这已在之前的 stackoverflow 问题stackoverflow.com/questions/7013990/… 中讨论过 - 这里的问题是 moles 也是一个重写分析器,因此两者发生冲突 - 但是您可以通知 moles 它需要“链接”到opencover(或任何其他分析器),以便两者同步工作
-
非常感谢您的评论。