2012-09-25 56 views
6

我使用OpenCover http://nuget.org/packages/opencover並寫了下面的批處理文件來運行單元測試和生成代碼覆蓋率統計PDB文件:當我運行該批處理文件OpenCover/NUnit的找不到

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 \調試\」

得到任何幫助,

感謝,

回答

8

找到了解決辦法,我失蹤nunit的/ noshadow開關。即目標參數應該是:

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

現在完美工作。

+0

謝謝,這有幫助。 – JoshGough

+0

這也幫助了我,謝謝! – willem

0

註冊opencover DLL(使用x86或x64 DLL):

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

在openCover指定參數時,使用-register:user如果它不能正常工作使用-register:path32

0

我知道你的問題已解決,但我遇到類似問題。我已經完成了/ noshadow的事情。

隨着Visual Studio 2015,請務必按照此處所述更新到最新版本的OpenCover。 - OpenCover/NUnit can't find PDB files

會爲我節省一個小時的頭痛。