如何在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文件
- 在测试项目根目录创建
CodeCoverage.runsettings文件,内容如下:
<RunSettings> <DataCollectionRunSettings> <DataCollectors> <DataCollector friendlyName="Code Coverage"> <Configuration> <ExcludeByFile>**/AutoGeneratedProgram.cs</ExcludeByFile> </Configuration> </DataCollector> </DataCollectors> </DataCollectionRunSettings> </RunSettings>
- 在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
相关产品推荐
相关产品推荐

