3

我在让 OpenCover 工作时遇到了一些问题

我有以下文件夹结构

  • \工具
  • \工具\Nunit
  • \工具\OpenCover
  • \构建工件

当我的代码编译时,所有编译后的代码都会生成到 BuildArtifacts 文件夹中。这包括 dll 和相应的 .pdb 文件

我正在努力让 OpenCover 运行

从 powershell 我从根文件夹输入以下命令:

.\tools\OpenCover\OpenCover.Console.exe -register:user -target:.\tools\nunit\nunit-console.exe -targetargs:".\buildartifacts\MVCControllerTests.dll /noshadow" -filter:+[*] * -输出:.\coverage.xml

但是我不断收到消息:提交...

无结果 - 未检测与提供的过滤器匹配的程序集这可能是由于缺少与过滤器匹配的程序集的 PDB 请查看输出文件并参考使用指南 (Usage.rtf)

我查看了OpenCover/NUnit can't find PDB files,并且我的 targetargs 中有 /noshadow 开关

我试图将 /noshadow 移动为 targetargs 中的第一个,但随后我从 nunit 收到错误

我还更新了 nunit-console.exe.config 并将以下行添加到启动节点,以确保所有测试都在 .net4 而不是 .net3.5 中执行

<supportedRuntime version="v4.0.30319">

但这并没有什么不同。

当我查看 coverage.xml 文件时,即使我有 noshadow 标志,nunit 似乎仍然在执行 shadowcopy

例如,这是存在的:

C:\Users\darren\AppData\Local\Temp\nunit20\ShadowCopyCache\10344_634940293912865718\Tests_275832668\assembly\dl3\db34ecee\a0f236ee_a7f4cd01\TABusinessInterface.DLL

感谢任何帮助。

4

1 回答 1

4

OpenCover WIKI指出,在使用 PowerShell 时,您应该将整个参数用引号括起来,即

-targetargs:".\buildartifacts\MVCControllerTests.dll /noshadow"

变成

"-targetargs:.\buildartifacts\MVCControllerTests.dll /noshadow"
于 2013-01-18T06:46:53.790 回答