我正在尝试更准确地反映我正在处理的项目中的代码覆盖率,但是在涉及实体框架生成的类时遇到了问题。 我想从覆盖率统计信息中排除这些类的构造函数,因此我已将ExcludeFromCodeCoverage
属性添加到重新生成类的T4模板中,结果如我所料。
using System.Diagnostics.CodeAnalysis;
public partial class Address
{
[ExcludeFromCodeCoverage]
public Address()
{
this.Person = new HashSet<Person>();
}
...
}
我试图在方法级别上添加这个,因为有一些包含自定义逻辑的部分类需要进行测试并包含在代码覆盖率统计中。
从我所了解的情况来看,在使用dotCover时,应该会自动排除
ExcludeFromCodeCoverage
,但我不确定在通过TeamCity运行时是否也是如此,因此我按照Attribute filter syntax for code coverage in TeamCity中提到的方式(尝试使用ExcludeFromCodeCoverage
和ExcludeFromCodeCoverageAttribute
)进行筛选,但没有成功。谢谢
DotCover.exe
命令行的人来说,为了排除标记有ExcludeFromCodeCoverage
属性的代码,你应该使用以下的语句:dotCover.exe analyse ... /AttributeFilters=System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
,你不需要像使用/Filters=
参数那样加上-:
的语法。 - Tom Hall