You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps中排除AutoGeneratedProgram.cs的代码覆盖率统计?

排除AutoGeneratedProgram.cs在Azure DevOps代码覆盖率统计之外的解决方案

方法1:通过测试项目.csproj配置直接排除或阻止生成

阻止自动生成文件

如果测试项目不需要AutoGeneratedProgram.cs(比如未使用顶级语句),可在项目文件中添加配置彻底阻止它生成:

<PropertyGroup>
  <GenerateProgramFile>false</GenerateProgramFile>
</PropertyGroup>

仅排除代码覆盖率统计

若必须保留该文件,添加以下配置将其从覆盖率统计中排除:

<ItemGroup>
  <ExcludeFromCodeCoverage Include="AutoGeneratedProgram.cs" />
</ItemGroup>

将代码插入测试项目的.csproj文件即可,无需修改Azure DevOps任务配置。

方法2:在Azure DevOps测试任务中配置代码覆盖率筛选

使用runsettings文件

  1. 在测试项目根目录创建CodeCoverage.runsettings文件,内容如下:
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage">
        <Configuration>
          <ExcludeByFile>**/AutoGeneratedProgram.cs</ExcludeByFile>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>
  1. 在Azure DevOps的Visual Studio Test任务中,找到“代码覆盖率”区域,在“附加设置”中添加:
/settings:CodeCoverage.runsettings

直接使用任务筛选器

部分新版本的Visual Studio Test任务支持直接在“代码覆盖率筛选器”中输入排除规则:

-:AutoGeneratedProgram.cs

格式为-:文件名,表示排除该文件的覆盖率统计。

方法3:升级Microsoft.NET.Test.Sdk版本

你当前使用的16.11.0版本发布于.NET 6正式版之前,可能存在对自动生成文件的覆盖率统计兼容问题。建议将Microsoft.NET.Test.Sdk升级到17.x及以上版本(比如17.8.0),新版本针对.NET 6+的自动生成文件有更好的处理,可能会自动将其排除在覆盖率统计之外。

内容的提问来源于stack exchange,提问作者KI1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:02:19