我剛剛從Nuget中獲得了NUnit,NUnit Runners和OpenCover。 NUnit部件在GUI和控制檯模式下都運行良好。但在PowerShell中,我似乎無法讓OpenCover正常工作。以下使用的各種例子,我結束了這個命令:OpenCover沒有將參數傳遞給NUnit
.\OpenCover.Console.exe -register:user -target:"..\NUnit.Runners.2.6.1\tools\nunit-console.exe" -targetargs:"/noshadow C:\Path\To\Tests.dll" -filter:+[*]* -output:coverage.xml
我看到NUnit的開放版權的信息,但隨後NUnit的告訴我:
fatal error: no inputs specified
其次,當然,通過標準的幫助輸出描述標誌和什麼。然後,OpenCover自然也會顯示一個錯誤,指出沒有任何內容與過濾器匹配,並且沒有結果。
於是,我就直接運行NUnit的:
..\NUnit.Runners.2.6.1\tools\nunit-console.exe /noshadow C:\Path\To\Tests.dll
而且運行良好。測試通過,一切都很開心。想,也許文檔和例子是過時的,我試過targetargs
組合直接進入調用:
.\OpenCover.Console.exe -register:user -target:"..\NUnit.Runners.2.6.1\tools\nunit-console.exe /noshadow C:\Path\To\Tests.dll" -filter:+[*]* -output:coverage.xml
但錯誤輸出仍然是相同的。
我錯過了正確使用OpenCover的東西嗎?我如何才能正確地與NUnit控制檯運行器交互?
你可以嘗試沒有「/ noshadow」參數? –
@HenryAloni:有趣。在非'targetargs'嘗試沒有'/ noshadow'嘗試沒有區別。但是,如果我再次分離'targetargs'並從該嘗試中移除'/ noshadow',則NUnit成功運行測試。但是,OpenCover仍然報告「沒有與提供的過濾器相匹配的程序集進行檢測,這可能是由於缺少匹配過濾器的程序集的PDB」。然而,在輸出bin中有PDB文件,我將它指向測試DLL。 – David
看起來像opencover帶有錯誤的參數。你可以嘗試把它自己的qoutes中的每個參數:OpenCover.Console.exe「-target:.. \ NUnit.Runners.2.6.1 \ tools \ nunit-console.exe」-output:。\ test.xml「 - targetargs:MyApp.Merchant.nunit/noshadow「 –