2010-06-29 54 views
2

我还没有安装我的NCover 3的许可证,并且我仍然在构建服务器上运行1.5.8。我试图排除我不希望包含在报告中的完整程序集和特定类,因为它们会人为地降低覆盖率结果。NCover 1.5.8/NCoverExplorer 1.4.0.7手动排除是非常片状的

在NCoverExplorer中,由于在选项选项卡中有一个覆盖排除部分,您可以在其中指定完整的命名空间,因此我正在使用这些选项。我已经进入了完全合格的课程,出于某种原因,只有少数人被排除在外,我无法弄清楚原因。例如,当我将System.ComponentModel.Composition添加到列表中时,它永远不会被排除!

这只是1.5.8中的一个错误,我现在必须忍受,因为它是一个测试版,也不再支持?虽然我确实拥有服务器的新许可证,但我希望能够在我的个人计算机上在家中进行一些覆盖。

我发现一个非常棒的article on using a CoverageExcludeAttribute使NCover自动跳过那些标记有该属性的类/方法。这是最好的选择吗?

+0

我想你仍然可以在生成报表之前从树中手动删除它们,但是你希望它在分析期间是自动的? – maxwellb 2010-06-29 13:48:52

+0

@maxwellb是的,自动是我正在寻找。虽然在分析过程中会很好,但我可以用脚本进行后期处理。我必须查看TeamCity文档,看看我是否可以在将coverage.xml呈现到屏幕之前实际修改coverage.xml。 – Dave 2010-06-29 14:19:16

回答

1

您是否尝试过使用正则表达式包含/排除的组件 -

//ias AuctionSniper([.\w]*?)(?<!Tests) 包括与AuctionSniper开头,但与试验如不结束所有组件AuctionSniper.Main.exe 您可以指定以分号分隔的多个模式。
//ias .*vendorsupplied.*;.*tests

这与NCover 3一起使用 - 如果它适用于免费/社区版本,您可以试试它。

+0

我没有......我的理解是,正则表达式只支持NCover 2.0及以上版本。 1.5.x需要完整的程序集名称。我没有使用通配符。 – Dave 2010-06-29 14:12:37

+0

尽管它没有解决我的问题,但我将它标记为1.5.8,因为我厌倦了所有事情,升级到v3.4,并使用此处的信息来安装。 :) – Dave 2010-07-06 16:18:58

+0

没有人会从同事程序员对第三方库的沮丧中得到一个笑声...但你的评论只是带来了一个'在那里'知道我的脸上的微笑。 – Gishu 2010-07-06 19:30:30

0

获得部分路径的一种方法是也使用“包含在coverage中的程序集”选项。这让我忽略了System.ComponentModel.Composition。但是,解析大多数其他类和名称空间仍然无效。当我排除整个类时,它只会排除方法,但不包含任何包含的类。