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

如何将.NET 6 Minimal API排除在代码覆盖率统计范围外?

解决方案

你可以通过以下两种常用方式实现排除代码覆盖率统计的需求:

方式1:排除整个程序集(适配参考实现项目全量排除的场景)

直接在Program.cs文件的最顶部添加程序集级别的ExcludeFromCodeCoverage属性即可,修改后的代码如下:

[assembly: System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
using Microsoft.AspNetCore.Mvc;
using SharedDataLayer.Repositories;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<PaymentRepository>();

var app = builder.Build();

app.MapGet("/Payments", ([FromServices] PaymentRepository repo) =>
{
    return repo.GetPayments();
});

app.Run();

这种方式会将当前项目的所有代码都排除在代码覆盖率统计之外,和你之前其他参考实现的排除效果完全一致,非常适合参考项目整体不需要统计覆盖率的场景。

方式2:仅排除隐式生成的Program类

如果你只想排除顶级语句对应的隐式Program类、不想影响项目内其他可能存在的类的覆盖率统计,可以在Program.cs文件的末尾添加partial类声明并标记属性,代码示例:

using Microsoft.AspNetCore.Mvc;
using SharedDataLayer.Repositories;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSingleton<PaymentRepository>();

var app = builder.Build();

app.MapGet("/Payments", ([FromServices] PaymentRepository repo) =>
{
    return repo.GetPayments();
});

app.Run();

[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public partial class Program { }

这种方式的原理是.NET 6+顶级语句编译时会自动生成隐式的Program类,我们手动声明同名partial类附加属性,就能实现对整个顶级语句代码的排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:36:03