OpenCover / NUnit找不到PDB文件

时间:2012-09-25 16:05:43

标签: .net nunit opencover

我正在使用OpenCover http://nuget.org/packages/opencover并编写了以下批处理文件来运行单元测试并生成代码覆盖率统计信息:

echo off

echo ***************************
echo *** Running NUnit tests ***
echo ***************************
"..\packages\OpenCover.4.0.804\OpenCover.Console.exe" -register:user -target:"..\NUnit 2.6\bin\nunit-console-x86.exe" -targetargs:"..\Web.UnitTests\bin\Debug\Web.UnitTests.dll"  -output:coverage.xml

echo **************************************
echo *** Generating coverage statistics ***
echo **************************************
"..\packages\ReportGenerator.1.6.0.0\ReportGenerator.exe" "-reports:coverage.xml" "-targetdir:%CD%"

echo ***********************************
echo *** Launching Internet Explorer ***
echo ***********************************
start "C:\Program Files (x86)\Internet Explorer\iexplore.exe" "%CD%\Index.htm"

pause

然而,当我运行批处理文件时,我收到错误:

Committing...
No results - no assemblies that matched the supplied filter were instrumented
    this could be due to missing PDBs for the assemblies that match the filter
    please review the output file and refer to the Usage guide (Usage.rtf)

很确定我做了一些愚蠢的事情/遗漏了一些显而易见的事情,但不确定是什么!

PDB文件位于以下文件夹中:“.. \。Web.UnitTests \ bin \ Debug \”

感谢任何帮助,

谢谢,

3 个答案:

答案 0 :(得分:8)

找到一个解决方案,我错过了nunit的/ noshadow开关。即目标args应该是:

-targetargs:"..\Web.UnitTests\bin\Debug\Web.UnitTests.dll /noshadow"

现在完美运作。

答案 1 :(得分:0)

注册opencover DLL(使用x86或x64 DLL):

regsvr32 /n /i:user C:OpenCover.4.5.3723\x86\OpenCover.Profiler.dll

在openCover args中,如果不起作用,请使用-register:user使用-register:path32

答案 2 :(得分:0)

我知道你的问题已经解决,但我遇到了类似的问题。我已经完成了/ noshadow的事情。

使用Visual Studio 2015,请确保按照此处的说明更新到最新版本的OpenCover。 - OpenCover/NUnit can't find PDB files

本可以为我节省一小时的头痛。