我正在使用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 \”
感谢任何帮助,
谢谢,
答案 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
本可以为我节省一小时的头痛。