如何在TeamCity中排除dotCover所涵盖的类型和方法?

Mar*_*R-L 55 c# teamcity code-coverage dotcover

我有一个现有的C#4项目,我通过使用TestDriven.Net和Visual Studio覆盖功能检查了测试覆盖率,即上下文菜单中的Test With - > Coverage.

该项目包含一些我不想覆盖的代码,我通过添加[ExcludeFromCodeCoverage]那些类型和方法来解决这个问题.

我们刚刚将TeamCity升级到6.0.3,并且我已经将dotCover覆盖添加到NUnit构建步骤中.

我已经设法在"过滤器"部分删除外部程序集(如NHibernate)的覆盖范围(通过明确说明我想要覆盖的程序集),但我正在努力解决如何从覆盖的程序集中排除类型和方法.

在此输入图像描述

Ant*_*ean 63

好的,马丁,我想通了!它只需要花费一个小时随机查看过滤器语法...当文档说要添加这样的过滤器时

+:myassembly=*;type=*;method=***
Run Code Online (Sandbox Code Playgroud)

它们的确意味着......任何东西<>都完全被你取代,其他任何东西都是文字的

+:<myassembly>;type=<filter>;method=<filter>
Run Code Online (Sandbox Code Playgroud)

所以,我想要的过滤器包括一个程序集(来自一堆程序集),然后在该程序集中排除一些名称空间.我写

+:Omnyx.Scanner
-:Omnyx.Scanner;type=Omnyx.Scanner.Simulation.*
-:Omnyx.Scanner;type=Omnyx.Scanner.ToolsCommon.*
Run Code Online (Sandbox Code Playgroud)

  • 在通过dotCover源(自然地使用dotPeek)拖网之后,我已经设法弄清楚如何在**命令行**上指定多个过滤器.你**用`;`分隔过滤器**,过滤器可以是汇编过滤器,类型过滤器**或**方法过滤器.因此要包含AssemblyA但在AssemblyA.Blah命名空间中排除类型:`+:AssemblyA; - :type = AssemblyA.Blah.*` (8认同)