2012-04-25 48 views
2

dotCover的「Edit Coverage Filter」對話框中的「Function mask」字段中應該包含哪些內容?我嘗試過「Foo」和「Foo *」,但沒有任何效果。如何使用dotCover過濾器排除類構造函數?

例如:

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

    ... 
} 

回答

2

首先,這是值得一提的是,dotCover分析遵守組件,而不是源代碼,生成的覆蓋報告。任何C#構造函數(不管它在C#中的名稱如何)都編譯成名爲.ctor(或.cctor,如果構造函數是靜態的)。這就是爲什麼在您的示例中,dotCover永遠不會看到名爲Foo(int, int)的方法。

如果您想篩選出Foo類的構造函數,你需要輸入「編輯覆蓋過濾器」對話框中輸入以下:

  • 模塊面膜:YourNamespace
  • 類面膜:YourNamespaceFoo
  • 功能面膜:.ctor

希望這有助於。

+0

如果該類有另一個構造函數,例如'公共Foo(字符串a,字符串b)'是否有可能在它們的過濾器1上? – McBainUK 2012-04-26 07:36:33

+0

@McBainUK:據我所知,我不認爲這是可能的,過濾器不支持指定方法簽名。 – 2012-04-26 09:35:02

+0

@IgorKorkov:我得出了同樣的結論。謝謝你的幫助。 – McBainUK 2012-04-26 09:39:54