2013-03-12 3 views
10

Ich habe eine Klasse in meinem Code, die nicht in Code Coverage-Nummern angezeigt werden soll. Ich fügte hinzu, die [ExcludeFromCodeCoverage] Attribut der Klassendefinition wie folgt aus:ExcludeFromCodeCoverage funktioniert nicht in VS2012

[ExcludeFromCodeCoverage] 
public class MyClass { ... } 

Nach den docs (http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute.aspx) dies alles was ich brauche sein sollte, aber die Klasse zeigt immer noch in Code-Coverage-Analyse auf.

Ich verwende VS2012/.NET 4.5, wenn das zählt.

Irgendwelche Ideen, warum das nicht funktionieren würde?

Antwort

27

Hier ist was los war, und hier ist, wie ich es behoben habe.

Ich verwendete eine .runsettings-Datei, um bestimmte Assemblies von der Codeabdeckung auszuschließen. Scheint, wie wenn Sie eine .runsettings Datei enthalten, Sie müssen umfassen die folgende Konfiguration:

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

Es nicht egal scheint, was Sie in der .runsettings Datei haben - dies muss da sein für [ExcludeFromCodeCoverage] zu Arbeit.

FYI in diesem Artikel für weitere Informationen über die .runsettings Datei: http://msdn.microsoft.com/en-us/library/jj159530.aspx

+0

Nun, das muss Microsofts Idee der intuitiven Konfiguration sein ... – Gorgsenegger