C# 9/10 顶级语句和 ExcludeFromCodeCoverage-Attribute?

标签 c# code-coverage c#-9.0 c#-10.0 toplevel-statement

我通常将属性 [ExcludeFromCodeCoverage] 设置为我的 Program 类,因为无论如何都不可能对此类进行单元测试(或者也没有意义),所以它不显示在报道报告中被列为“失踪”:

[ExcludeFromCodeCoverage]
public static class Program
{
    public static void Main(string[] args)
    {
       // do something awesome
    }
}

但是对于 top-level statements我不知道如何处理这个。正如我在这里发现的那样,似乎无法设置属性:https://stackoverflow.com/a/69962982/1099519

到目前为止,我坚持使用经典的 Class declaration,但在单元测试代码覆盖率方面,也许他们考虑了其他东西?

最佳答案

从 C# 10 开始,顶级语句生成发生了变化,现在您可以将 partial Program 类添加到顶级语句的末尾并为其添加属性:

[ExcludeFromCodeCoverage]
public partial class Program { }

请注意,在初始功能规范中(针对 C# 9)states编译器使用的实际名称取决于实现,但由于使用部分类的 C# 10 和 NET 6 是 unit testing 的推荐方法之一使用顶级语句的 ASP.NET Core 应用程序。

但我个人会说,如果您需要这种“高级”场景,您应该切换回“普通旧”Program 类。

关于C# 9/10 顶级语句和 ExcludeFromCodeCoverage-Attribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72010668/

相关文章:

c# - 如何告诉编译器必须初始化属性

c# - 记录类型 : overriding EqualityContract breaks the equality/hashcode match

c# - 如何在 WPF 中显示正在拖动的项目?

c# - 具有集合属性的记录类型和具有值语义的集合

c# - EF 检索数据时出错 : wrong table name in SQL

python - GitHub 操作 : which shell for codecov-bash on Windows?

c# - .net - 如何分析方法中有多少不同的代码路径

node.js - 我可以使用 istanbul 来检测 mocha html-cov

c# - 如何使用包含多个工作表的 OOXML SDK 创建新的电子表格文件?

c# - 如何将导弹图像拉到线上?