我知道我可以使用[ExcludeFromCodeCoverage]来排除.Net framework 4中的代码覆盖率。
有没有人知道我是否可以从.dotnet核心中排除代码覆盖率?
答案 0 :(得分:2)
我终于找到了解决方案!
首先,您需要使用.runsettings文件来配置代码覆盖率:
https://msdn.microsoft.com/en-us/library/jj159530.aspx
但问题是ExcludeFromCodeCoverageAttribute是密封的,所以我们不能使用它
我在这里发布了一个问题,看起来它将在下一个版本中解决
https://github.com/dotnet/corefx/issues/14488
现在 我使用了.runsettings示例中提到的GeneratedCodeAttribute。 您还可以使用自定义属性或此处的任何其他排除规则:
答案 1 :(得分:1)
从.NET Core 2.0开始,您可以使用ExcludeFromCodeCoverage
属性。
using System.Diagnostics.CodeAnalysis;
namespace YourNamespace
{
[ExcludeFromCodeCoverage]
public class YourClass
{
...
}
}
https://isscroberto.com/2019/07/11/net-core-exclude-from-coverage/
答案 2 :(得分:0)
创建自己的 ExcludeFromCodeCoverage 属性
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Interface)]
public class ExcludeFromCodeCoverageAttribute : Attribute
{
public ExcludeFromCodeCoverageAttribute(string reason = null)
{
Reason = Reason;
}
public string Reason { get; set; }
}
然后将其添加到您的 .runsettings 文件中并将其排除。
...
<Configuration>
<CodeCoverage>
.
.
.
<Attributes>
<Exclude>
<Attribute>^YourCompany\.YourNameSpace\.sExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
.
.
.
</Configuration>
...
在分析代码覆盖率时,请不要忘记选择运行设置文件。