I have a class in my code that I don't want showing up in code coverage numbers. I added the [ExcludeFromCodeCoverage]
attribute to the class definition like this:
[ExcludeFromCodeCoverage]
public class MyClass { ... }
According to the docs (http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute.aspx) this should be all I need, but the class still shows up in code coverage analysis.
I'm using VS2012/.NET 4.5 if that matters.
Any ideas why this wouldn't work?
Here's what was going on, and here's how I fixed it.
I was using a .runsettings file to exclude certain assemblies from being included in code coverage. Seems like whenever you include a .runsettings file, you must include the following configuration:
<Attributes>
<Exclude>
<Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
It doesn't seem to matter what you have in the .runsettings file - this has to be there for [ExcludeFromCodeCoverage]
to work.
FYI see this article for more information on the .runsettings file: http://msdn.microsoft.com/en-us/library/jj159530.aspx
I know the approved answer is good but I wanted to add that if you start your .runsettings file from the one suggested here (https://msdn.microsoft.com/en-us/library/jj159530.aspx) you will have a pretty good base to start with (including the proposed solution here).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With