10

trying to run the open cover as below

opencover.console.exe -target:"C:\Users\rkapiset\Downloads\xunit-1.8\xunit.console.clr4.x86.exe" -targetargs:"""E:\Office\CRM\dotnet\1 - UI\EYC.CRM.UI.Tests\bin\Debug\EYC.CRM.UI.Tests.dll""" -filter:+[EYC]* -output:coverage.xml

below is the result

61 total, 3 failed, 0 skipped, took 1.674 seconds
Visited Classes 0 of 0 (NaN)
Visited Methods 0 of 0 (NaN)
Visited Points 0 of 0 (NaN)
Unvisited Classes
Unvisited Methods

Any hints where i'm going wrong? thanks in advance.

4

3 回答 3

8

有几个关键可以让它发挥作用。

  1. 找到打开的盖子
  2. 告诉它使用 xunit.console.exe
  3. 使用 targetargs 为 xunit.console.exe 提供参数
  4. 给 xunit 测试 dll 和应用程序 dll 的调试版本
  5. 指示 xunit 不使用 shadowcopy(因此所有 PDB 调试文件都在其工作目录中可用)
  6. 使用反斜杠在 targetargs 中的路径中注释引号
  7. 从覆盖范围中过滤掉“.Tests”项目中的类
  8. 使用 -register 做一些神奇的事情
  9. 以管理员身份运行(如果您的机器上关闭了 UAC,则不是问题)

例子:

"C:\OpenCover.4.6.166\tools\OpenCover.Console.exe" -output:"C:\MyProject\coverage.xml" "-target:C:\MyProject\packages\xunit.runner.console.2.0.0\tools\xunit.console.exe" -targetargs:"\"C:\MyProject\Project.Tests\bin\Debug\Project.Tests.dll\" \"C:\MyProject\Project\bin\Debug\Project.exe\" -noshadow" -filter:"+[*]Project.* -[*.Tests]*" -register

引用: http ://derekwilson.net/derekblog/post/2012/05/29/Using-OpenCover-and-xUnit.aspx

于 2015-09-25T00:39:58.290 回答
4

你注册了profiler吗?

尝试-register开关,或者如果在 UAC -register:user下

所有开关都在OpenCover Wiki上进行了解释

或者,您可以在已安装程序文件文件夹中的 x86 和 x64 文件夹中的每个分析器 OpenCover.Profiler.dll 上使用 regsvr32

于 2011-07-24T09:12:57.377 回答
0

尝试在您的代码中添加 -register:user 。如果这失败了,那么您一定是缺少Microsoft Visual C++ 2010 Redistributable Package (x86)。. 这在这里解释

于 2012-09-22T11:29:24.383 回答