TeamCity 7中带有dotCover的ExcludeFromCodeCoverage属性

ada*_*197 8 dotcover teamcity-7.1

我正在尝试更准确地反映我正在处理的项目中的代码覆盖率,但在涉及Entity Framework生成的类时遇到了问题.我想排除这些类从覆盖统计的构造函数,所以我已经添加了ExcludeFromCodeCoverage属性到再生像我期望例如类的T4模板

using System.Diagnostics.CodeAnalysis;

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

    ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

kra*_*asb 15

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

您应该在" 属性过滤器:"部分中指定属性名称.在您的情况下,文本应为:

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

您的TeamCity报道报告中不应显示标记的成员(对于类)或标记为绿色/红色.

可在此处找到更多说明

我有类似的问题.我通过添加到我的"代码覆盖率"构建步骤来从覆盖范围中排除生成的类:

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

  • 此注释与 TeamCity 和 DotCover 没有直接关系,但对于使用“DotCover.exe”命令行的用户,为了排除标有“ExcludeFromCodeCoverage”属性的代码,您应该使用以下“dotCover.exe 分析...” /AttributeFilters=System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute`,您不需要像“/Filters=”参数那样使用“-:”语法。 (4认同)