可移植类库中不支持ExcludeFromCodeCoverage属性

时间:2015-08-02 21:30:51

标签: unit-testing mstest visual-studio-2015

我观察到" ExcludeFromCodeCoverage"可移植类库中不支持该属性。

是否有任何解决方法可以过滤dll中业务逻辑的代码覆盖率?

因此,我通常将此属性应用于属性getter / setter和代码隐藏文件。

3 个答案:

答案 0 :(得分:3)

我发现如果您添加自己的ExcludeFromCodeCoverageAttribute实施,VS覆盖工具将遵守它。但是,您必须将它放在正确的命名空间中。 YMMV。

namespace System.Diagnostics.CodeAnalysis
{
  /// <summary>
  /// Specifies that the attributed code should be excluded from code coverage information.
  /// </summary>
  /// <remarks>
  /// This attribute was added to the assembly because it's not otherwise
  /// available to portable class libraries. Marked internal to avoid reuse
  /// outside this specific library.
  /// </remarks>
  [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event, AllowMultiple = false, Inherited = false)]
  internal sealed class ExcludeFromCodeCoverageAttribute : Attribute
  {
  }
}

答案 1 :(得分:1)

引用类似的question,我用[DebuggerNonUserCode]换掉了[ExcludeFromCodeCoverage]属性。

这对我有用。

答案 2 :(得分:0)

通常,代码覆盖率库允许您指定要排除的属性。因此,您可以创建自己的属性并配置coverage util以将其用作排除标准。