我通常将属性 [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/