14

我的代码中有一个类,我不想出现在代码覆盖率数字中。我将[ExcludeFromCodeCoverage]属性添加到类定义中,如下所示:

[ExcludeFromCodeCoverage]
public class MyClass { ... }

根据文档(http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute.aspx),这应该是我所需要的,但该类仍然出现在代码覆盖率分析中。

如果这很重要,我正在使用 VS2012/.NET 4.5。

任何想法为什么这不起作用?

4

2 回答 2

40

这就是发生的事情,这就是我修复它的方法。

我使用 .runsettings 文件将某些程序集排除在代码覆盖范围之外。似乎每当您包含 .runsettings 文件时,都必须包含以下配置:

<Attributes>
    <Exclude>
        <Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
    </Exclude>
</Attributes>

你在 .runsettings 文件中拥有什么似乎并不重要——它必须在那里[ExcludeFromCodeCoverage]才能工作。

仅供参考,请参阅本文以获取有关 .runsettings 文件的更多信息:http: //msdn.microsoft.com/en-us/library/jj159530.aspx

于 2013-03-12T17:16:57.850 回答
2

我知道批准的答案很好,但我想补充一点,如果您从此处建议的文件( https://msdn.microsoft.com/en-us/library/jj159530.aspx ) 开始您的 .runsettings 文件,您将拥有一个很好的基础(包括这里提出的解决方案)。

于 2017-12-01T18:53:26.510 回答