xunit 2.4.1 使用 cli dotnet test --collect:"Code Coverage" 不生成覆盖率 xml

问题描述

我使用了 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" />

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...