使用 .coverage 文件发布代码覆盖率?

Publish code coverage using .coverage file?

我有一个带有 VSTest 任务的 Azure 构建管道,该任务生成“.coverage”格式的代码覆盖率。我需要将其发布回构建结果页面中的 'Code Coverage' 选项卡。只有下载代码覆盖率结果可用。如何使用“.coverage”文件发布代码覆盖率?

我已经尝试了 ReportGenerator 工具,但是当我将“.coverage”文件作为报告文件传递给该工具时,它返回的覆盖率报告为零覆盖率。当我使用 visual studio 打开覆盖率文件时,它会显示覆盖率。

我也有同样的问题,只是想明白了。我 运行 从一个简单的 Exec-任务中使用 MsBuild 进行测试,并将日志记录命令嵌入为 Message-任务。当然,您可以使用 PowerShell 或其他工具生成相同的输出。

<?xml version="1.0" encoding="utf-8"?>
<Project 
  ToolsVersion="14.0" 
  DefaultTargets="ReportCoverage" 
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  ..

  <Target Name="ReportCoverage">

    ..

    <ItemGroup>
      <CoverageResults Include="$(BinDir)\Reports\*.coverage" />
    </ItemGroup>

    <Message 
      Text="##vso[task.addattachment type=Distributedtask.Core.CodeCoverage;name=CodeCoverage;]$(CoverageResults)" 
      Importance="High" 
      Condition="'%(CoverageResults.Identity)' != ''"/>
  </Target>
</Project>