我还没有安装NCover 3的许可证,我的构建服务器上仍然运行1.5.8。我试图排除我不希望包含在报告中的完整程序集和特定类,因为它们会人为地降低覆盖率结果。
在NCoverExplorer中,我正在玩这些选项,因为“选项”选项卡中有一个覆盖排除部分,您可以在其中指定完整的命名空间。我已进入完全合格的班级,由于某种原因,只有少数几个被排除在外,我无法弄清楚原因。例如,当我将System.ComponentModel.Composition添加到列表中时,它永远不会被排除!
这只是1.5.8中我现在必须忍受的错误,因为它是测试版,也不再受支持了吗?虽然我有一个新的服务器许可证,但我希望能够在家里的个人计算机上做一些报道。
我找到了一个非常棒的article on using a CoverageExcludeAttribute来让NCover自动跳过那些用这个属性标记的类/方法。这是最好的选择吗?
答案 0 :(得分:1)
您是否尝试使用正则表达式来包含/排除程序集 -
//ias AuctionSniper([.\w]*?)(?<!Tests)
包括以AuctionSniper开头但不以测试结束的所有程序集,例如AuctionSniper.Main.exe
您可以指定由分号分隔的多个模式
或//ias .*vendorsupplied.*;.*tests
这适用于NCover 3 - 如果它适用于免费/社区版,您可以尝试一下。
答案 1 :(得分:0)
获得部分方式的一种方法是使用“程序集包含在覆盖范围内”选项。这允许我忽略System.ComponentModel.Composition。但是,驱散大多数其他类和命名空间仍然无法正常工作。有点奇怪,当我排除整个类时,它只排除方法,但不排除任何包含的类。