我刚刚从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“ –