我正在尝试使用dotCover生成代码覆盖率报告文件,而我的测试是使用xUnit完成的。
我运行的命令是dotCover analyse coverage.xml
我的coverage.xml
文件看起来像这样:
<AnalyzeParams>
<TargetExecutable>C:\Users\my.name\.nuget\packages\dotnet-xunit\2.3.0\tools\net452\xunit.console.exe</TargetExecutable>
<TargetArguments>Factures.Services.dll</TargetArguments>
<TargetWorkingDir>Services\Factures.Services.Tests\bin\Debug\netcoreapp2.0</TargetWorkingDir>
<Output>dotCover.html</Output>
<ReportType>html</ReportType>
</AnalyzeParams>
但是我收到以下错误消息:
could not find xunit.dll (v1) or xunit.execution.*.dll (v2) in C:\...\Services\Factures.Services.Tests\bin\Debug\netcoreapp2.0
答案 0 :(得分:3)
请尝试以下coverage.xml
:
<AnalyzeParams>
<TargetExecutable>C:\Program Files\dotnet\dotnet.exe</TargetExecutable>
<TargetArguments>test Factures.Services.csproj</TargetArguments>
<TargetWorkingDir>Services\Factures.Services.Tests\</TargetWorkingDir>
<Output>dotCover.html</Output>
<ReportType>html</ReportType>
</AnalyzeParams>
执行保持dotCover analyse coverage.xml
答案 1 :(得分:2)
感谢@fabian-s寻求解决方案的帮助。
如果您的测试项目csproj文件中有以下行(根据xUnit doc):
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
然后对于每个测试项目使用以下内容然后合并您的报告(请参阅dotCover doc):
<AnalyzeParams>
<TargetExecutable>C:\Program Files\dotnet\dotnet.exe</TargetExecutable>
<TargetArguments>xunit</TargetArguments>
<TargetWorkingDir>Services\Factures.services.test</TargetWorkingDir>
<Output>dotCover.html</Output>
<ReportType>html</ReportType>
</AnalyzeParams>
但是,如果您在每个测试项目csproj文件中都有以下行(根据Ms doc):
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
然后使用以下内容获得整个解决方案:
<AnalyzeParams>
<TargetExecutable>C:\Program Files\dotnet\dotnet.exe</TargetExecutable>
<TargetArguments>test</TargetArguments>
<TargetWorkingDir>.</TargetWorkingDir>
<Output>dotCover.html</Output>
<ReportType>html</ReportType>
</AnalyzeParams>