OpenCover - 无法找到PDB

时间:2013-01-17 15:01:33

标签: opencover nunit-console

我在使OpenCover工作时遇到一些麻烦

我有以下文件夹结构

  • \工具
  • \工具\ NUnit的
  • \工具\ OpenCover
  • \ Buildartifacts

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

我正在努力让OpenCover运行

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

  

。\ tools \ OpenCover \ OpenCover.Console.exe -register:user   -target:。\ tools \ nunit \ nunit-console.exe -targetargs:“。\ buildartifacts \ MVCControllerTests.dll / noshadow”-filter:+ [*] * -output:。\ 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 \应用程序数据\本地\ TEMP \ nunit20 \ ShadowCopyCache \ 10344_634940293912865718 \ Tests_275832668 \组件\ DL3 \ db34ecee \ a0f236ee_a7f4cd01 \ TABusinessInterface.DLL

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

OpenCover WIKI注意到使用PowerShell时应将整个参数用引号括起来,即

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

变为

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