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

标签 .net-core visual-studio-code code-coverage lcov coverlet

我正在 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 的指南从未明确指示读者该包 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 扩展对我来说是开箱即用的。

关于.net-core - 未为 dotnet 核心项目生成 Coverlet lcov.info 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63954663/

相关文章:

.net-core - .HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase 在 .net core 2.1 中不起作用?

javascript - 如何在 VSCode 中突出显示全局变量?

vscode 中的 ssh 错误 : Permission denied (publickey, 密码)

javascript - 为什么元素上的 load()、on()、bind() 等不可用

linux - 在 Linux 上使用 .net core 更改 IP 地址

java - 当有新的未覆盖代码时如何使构建失败?

java - Arquillian 测试覆盖率

visual-studio - 如何强制从代码覆盖范围中排除某些程序集?

c# - .Net 核心互操作性 Linux

node.js - 调试 mocha 测试时未命中 Visual Studio Code 中的断点