我正在尝试更准确地反映我正在处理的项目中的代码覆盖率,但在涉及Entity Framework生成的类时遇到了问题。我想从coverage统计信息中排除这些类的构造函数,因此我将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
)没有运气。
由于
答案 0 :(得分:14)
我拥有与您相同的TeamCity版本。这对我来说可以。您应该检查您的配置是否正确。
您应该在属性过滤器部分中指定属性名称。在您的情况下,文本应为:
-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
不应在您的TeamCity报道报告中显示标记的成员(对于类)或标记为绿色/红色。
可以找到更多说明here
我有类似的问题。我通过添加到“代码覆盖率”构建步骤
来从覆盖范围中排除生成的类 -:assembly=<assembly name>*;type=*<part of generated classname>*;method=*