ExcludeFromCodeCoverage在VS2012中不起作用

时间:2013-03-12 13:33:39

标签: visual-studio-2012 mstest code-coverage

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

[ExcludeFromCodeCoverage]
public class MyClass { ... }

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

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

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

2 个答案:

答案 0 :(得分:34)

这是发生了什么,这是我如何解决它。

我正在使用.runsettings文件来排除某些程序集被包含在代码覆盖率中。似乎每当您包含.runsettings文件时,必须包含以下配置:

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

.runsettings文件中的内容似乎并不重要 - 必须要[ExcludeFromCodeCoverage]才能正常工作。

仅供参考,有关.runsettings文件的详细信息,请参阅此文章:http://msdn.microsoft.com/en-us/library/jj159530.aspx

答案 1 :(得分:1)

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