【问题标题】:How to exclude a class constructor using a dotCover filter?如何使用 dotCover 过滤器排除类构造函数?
【发布时间】:2012-04-25 15:34:14
【问题描述】:

dotCover 的“编辑覆盖率过滤器”对话框中的“功能掩码”字段应该包含什么内容?我试过 "Foo" 和 "Foo*" 都没有效果。

示例:

public class Foo
{
  public Foo(int x, int y)
  {
     // how can I exclude this code from the code coverage calculation?
  }

  ...
}

【问题讨论】:

    标签: dotcover


    【解决方案1】:

    首先,值得一提的是,dotCover 分析已编译的程序集,而不是源代码,以生成其覆盖率报告。任何 C# 构造函数(无论其在 C# 中的名称如何)都被编译为名为 .ctor 的方法(如果构造函数是静态的,则为 .cctor)。这就是为什么 dotCover 在您的示例中永远不会看到名为 Foo(int, int) 的方法。

    如果要过滤掉Foo类的构造函数,需要在“Edit Coverage Filter”对话框中输入以下内容:

    • 模块掩码:YourNamespace
    • 类掩码:YourNamespace.Foo
    • 功能掩码:.ctor

    希望这会有所帮助。

    【讨论】:

    • 如果该类有另一个构造函数,例如public Foo(string a, string b),是否可以对它们中的第一个进行过滤?
    • @McBainUK:据我所知,我认为不可能,过滤器不支持指定方法签名。
    • @IgorKorkov:我得出了同样的结论。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 2015-01-30
    相关资源
    最近更新 更多