9

我正在尝试更准确地反映我正在处理的项目中的代码覆盖率,但在涉及实体框架生成的类时遇到了问题。我想从覆盖统计中排除这些类的构造函数,所以我已将ExcludeFromCodeCoverage属性添加到 T4 模板中,该模板会按照我的预期重新生成类,例如

using System.Diagnostics.CodeAnalysis;

public partial class Address
{
    [ExcludeFromCodeCoverage]
    public Address()
    {
        this.Person = new HashSet<Person>();
    }

    ...
}

我试图在方法级别添加它,因为有一些包含自定义逻辑的部分类需要测试并包含在代码覆盖率统计中。

从我读过的内容来看,ExcludeFromCodeCoverage应该在使用 dotCover 时自动排除,但我不确定在通过 TeamCity 运行时这是否属实,所以我包含了TeamCity 中代码覆盖的属性过滤器语法中提到的过滤器(同时尝试ExcludeFromCodeCoverageExcludeFromCodeCoverageAttribute)没运气。

谢谢

4

1 回答 1

16

我有与您相同的 TeamCity 版本。这对我来说可以。您应该检查您的配置是否正确。

您应该在Attribute Filters:部分中指定属性名称。在您的情况下,文本应该是:

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

不应在您的 TeamCity 覆盖报告中显示(用于课程)或标记为绿色/红色的标记成员。

更多说明可以在这里找到

我有类似的问题。我通过添加到我的“代码覆盖率”构建步骤中排除了生成的类:

-:assembly=<assembly name>*;type=*<part of generated classname>*;method=*

于 2013-10-29T12:56:05.533 回答