问题描述
我使用了 dotnet test --collect:"Code Coverage"
PS D:\git\MiniExcel\tests\MiniExcelTests> dotnet test --collect:"Code Coverage"
#...
Data collection : Unable to find a datacollector with friendly name 'Code Coverage'.
Data collection : Could not find data collector 'Code Coverage'
#...
那我也试了
dotnet test /p:CollectCoverage=true /p:CoverletoutputFormat=cobertura
dotnet test /p:CollectCoverage=true /p:CoverletoutputFormat=opencover
系统也不生成coverage.xml
我的测试 csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.1;net5.0;net461</TargetFrameworks>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<packagereference Include="xunit" Version="2.4.1" />
<packagereference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</packagereference>
<packagereference Include="coverlet.collector" Version="3.0.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</packagereference>
</ItemGroup>
</Project>
解决方法
您必须参考 documentation
中提到的 Microsoft.NET.Test.Sdk <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />