微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OpenCover.Console.exe-不正确的参数:参数“ xxx”无法识别

如何解决OpenCover.Console.exe-不正确的参数:参数“ xxx”无法识别

我正在使用Visual Studio 2019在c#中实现CodeCov进行代码覆盖,并且正在使用OpenCover和Xunit。我的解决方案有两个项目(Crossroads和CrossroadsUnitTests)

我已将所需的nuget软件包添加解决方案中(OpenCover,xunit,xunit.runner.console,xunit.runner.visualstudio),并且我想在本地运行OpenCover命令以生成覆盖率报告,但是看来我有路径中有空格。

下面是我在“程序包管理器”中运行的命令以及收到的错误

PM> OpenCover.Console.exe -register:user -target:"C:\Users\Mr. Erbynn\.nuget\packages\xunit.runner.console\2.4.1\tools\net46\xunit.console.exe" -targetargs:"C:\Users\Mr. Erbynn\source\repos\Crossroads\CrossroadsUnitTests\bin\Debug\netcoreapp3.1\CrossroadsUnitTests.dll -noshadow" -output:".\coverage.xml" -filter:"+[Crossroads*]* -[CrossroadsUnitTests*]*"

enter image description here

我尝试使用\"进行转义,但无法正常工作。

以下是我在根解决方文件夹中运行OpenCover时在Power Shell中收到的命令和错误

 C:\Users\\"Mr. Erbynn\"\.nuget\packages\opencover\4.7.922\tools\OpenCover.Console.exe -register:user -target:"C:\Users\\"Mr. Erbynn\"\.nuget\packages\xunit.runner.console\2.4.1\tools\net46\xunit.console.exe" -targetargs:"C:\Users\\"Mr. Erbynn\"\source\repos\Crossroads\CrossroadsUnitTests\bin\Debug\netcoreapp3.1\CrossroadsUnitTests.dll -noshadow" -output:".\coverage.xml" -filter:"+[Crossroads*]* -[CrossroadsUnitTests*]*"

enter image description here

下面是希望的目标测试dll文件

enter image description here

非常感谢您的帮助或建议。

解决方法

来自documentation

如果您的参数需要转义引号,即将带空格的参数传递给该目标进程,则可以使用\"-targetargs:"\"c:\program files\" xyz"

因此,您的-targetargs应该如下所示:

//           vv---------------------------------------------------------------------------------------------------------------vv
-targetargs:"\"C:\Users\Mr. Erbynn\source\repos\Crossroads\CrossroadsUnitTests\bin\Debug\netcoreapp3.1\CrossroadsUnitTests.dll\" -noshadow"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。