我观察到" ExcludeFromCodeCoverage"可移植类库中不支持该属性。
是否有任何解决方法可以过滤dll中业务逻辑的代码覆盖率?
因此,我通常将此属性应用于属性getter / setter和代码隐藏文件。
答案 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以将其用作排除标准。