1

我正在使用 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*]*"

在此处输入图像描述

我尝试过逃避,\"但它不起作用。

以下是我在根解决方案文件夹中运行 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*]*"

在此处输入图像描述

以下是希望的目标测试dll文件; 在此处输入图像描述

请任何帮助或建议将不胜感激。

4

1 回答 1

0

文档

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

所以,你-targetargs应该是这样的:

//           vv---------------------------------------------------------------------------------------------------------------vv
-targetargs:"\"C:\Users\Mr. Erbynn\source\repos\Crossroads\CrossroadsUnitTests\bin\Debug\netcoreapp3.1\CrossroadsUnitTests.dll\" -noshadow"
于 2020-08-18T06:02:19.087 回答