我的代码中有一个类,我不希望出现在代码覆盖率数字中。我将[ExcludeFromCodeCoverage]
属性添加到类定义中,如下所示:
[ExcludeFromCodeCoverage]
public class MyClass { ... }
根据文档(http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute.aspx),这应该是我所需要的,但该类仍然出现在代码覆盖率分析中。
如果重要的话,我正在使用VS2012 / .NET 4.5。
为什么这不起作用的任何想法?
答案 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)
我知道已批准的答案很好,但我想补充一点,如果你从建议的here(https://msdn.microsoft.com/en-us/library/jj159530.aspx)开始你的.runsettings文件,你将有一个很好的基础开始(包括此处提出的解决方案。)