从.net-core中的代码覆盖范围中排除类或方法

kep*_*ung 5 .net-core

我知道我可以使用[ExcludeFromCodeCoverage]来排除.Net Framework 4中的代码覆盖率。

有谁知道我是否可以从.dotnet核心中排除代码覆盖率?

Rob*_*zco 8

从 .NET Core 2.0 开始,您可以使用ExcludeFromCodeCoverage属性。

using System.Diagnostics.CodeAnalysis;

namespace YourNamespace
{
    [ExcludeFromCodeCoverage]
    public class YourClass
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

https://isscroberto.com/2019/07/11/net-core-exclude-from-coverage/


Vla*_*nko 3

我终于找到解决方案了!

首先,您需要使用 .runsettings 文件来配置代码覆盖率:

https://msdn.microsoft.com/en-us/library/jj159530.aspx

但问题是 ExcludeFromCodeCoverageAttribute 是密封的,所以我们不能使用它

https://github.com/dotnet/corefx/blob/93b277c12c129347b5d05de973fe00323ac37fbc/src/System.Diagnostics.Tools/src/System/Diagnostics/CodeAnalysis/ExcludeFromCodeCoverageAttribute.cs

我在这里发布了问题,看起来会在下一个版本中解决

https://github.com/dotnet/corefx/issues/14488

现在我使用 .runsettings 示例中提到的GenerateCodeAttribute。您还可以使用自定义属性或任何其他排除规则,如下所示:

https://msdn.microsoft.com/en-us/library/jj159530.aspx