【问题标题】:ExcludeFromCodeCoverage attribute with dotCover in TeamCity 7TeamCity 7 中带有 dotCover 的 ExcludeFromCodeCoverage 属性
【发布时间】:2013-11-05 03:08:39
【问题描述】:

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

using System.Diagnostics.CodeAnalysis;

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

    ...
}

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

根据我的阅读,ExcludeFromCodeCoverage 应该在使用 dotCover 时被自动排除,但我不确定在通过 TeamCity 运行时这是否属实,所以我包含了Attribute filter syntax for code coverage in TeamCity 中提到的过滤器(同时尝试@987654325 @ 和 ExcludeFromCodeCoverageAttribute) 没有运气。

谢谢

【问题讨论】:

    标签: dotcover teamcity-7.1


    【解决方案1】:

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

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

    -:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

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

    更多说明请见here

    我遇到了类似的问题。我通过添加到我的“代码覆盖率”构建步骤将生成的类排除在覆盖范围之外:

    -:assembly=&lt;assembly name&gt;*;type=*&lt;part of generated classname&gt;*;method=*

    【讨论】:

    • 此注释与 TeamCity 和 DotCover 没有直接关系,但对于那些使用 DotCover.exe 命令行的人来说,为了排除标有 ExcludeFromCodeCoverage 属性的代码,您应该使用以下 @987654326 @,您不需要像 /Filters= 参数那样使用 -: 语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    相关资源
    最近更新 更多