【问题标题】:Coverlet lcov.info file not generated for dotnet core project未为 dotnet 核心项目生成 Coverlet lcov.info 文件
【发布时间】:2020-09-18 11:13:05
【问题描述】:

我正在使用 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>

【问题讨论】:

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


    【解决方案1】:

    我曾经遇到过确切的问题。 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 扩展对我来说是开箱即用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      相关资源
      最近更新 更多