未为 dotnet 核心项目生成 Coverlet lcov.info 文件

Coverlet lcov.info file not generated for dotnet core project

我正在 linux 机器中使用 VS 代码开发 dotnet 核心项目。

关注以下博客以生成覆盖率报告: https://www.hanselman.com/blog/AutomaticUnitTestingInNETCorePlusCodeCoverageInVisualStudioCode.aspx

如前所述,我传递的 dotnet 测试参数如下:

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=lcov /p:CoverletOutput=./lcov.info

并期望生成 lcov.info 文件,但它没有。

我在这里遗漏了什么吗?

ps: 我已经包含了这个包

 <PackageReference Include="coverlet.collector" Version="1.3.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

我曾经遇到过确切的问题。 Hanselman 的指南从未明确指示 reader 需要包 coverlet.msbuild 来指示 .NET 使用 /p: 语法收集代码覆盖率。通过在测试项目文件夹中执行以下命令,将 coverlet.msbuild 包含在测试项目中:

dotnet add package coverlet.msbuild

测试项目的 *.csproj 文件应包含类似于以下内容的语句:

<PackageReference Include="coverlet.msbuild" Version="2.9.0"
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    <PrivateAssets>all</PrivateAssets>
</PackageReference>

通过此修复,当我 运行 与您发布的命令完全相同时,VSCode 的 Coverage Gutters 扩展对我来说开箱即用。