2013-03-12 15 views
10

Mam klasę w moim kodzie, której nie chcę pokazywać w numerach pokrycia kodu. I dodaje atrybut [ExcludeFromCodeCoverage] do definicji klasy tak:ExcludeFromCodeCoverage nie działa w VS2012

[ExcludeFromCodeCoverage] 
public class MyClass { ... } 

Zgodnie z docs (http://msdn.microsoft.com/en-us/library/system.diagnostics.codeanalysis.excludefromcodecoverageattribute.aspx) Należy to wszystko, czego potrzebuję, ale klasa nadal pojawia się w analizie pokrycia kodu.

Używam VS2012/.NET 4.5, jeśli to ma znaczenie.

Jakieś pomysły, dlaczego to by nie zadziałało?

Odpowiedz

27

Oto, co się działo, i oto jak to naprawiłem.

Użyłem pliku .runsettings, aby wykluczyć niektóre zespoły z uwzględnienia w zasięgu kodu. Wygląda na to, kiedy tylko to plik .runsettings, ty musi zawierać następującą konfigurację:

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

nie wydaje się ważne co masz w pliku .runsettings - to musi być tam [ExcludeFromCodeCoverage] do praca.

FYI zobaczyć ten artykuł, aby uzyskać więcej informacji na temat pliku .runsettings: http://msdn.microsoft.com/en-us/library/jj159530.aspx

+0

Cóż, to musi być pomysł Microsoftu na intuicyjną konfigurację ... – Gorgsenegger

Powiązane problemy