2013-10-25 23 views
7

Ich versuche, die Codeabdeckung in einem Projekt, an dem ich arbeite, genauer darzustellen, habe aber ein Problem bei den von Entity Framework generierten Klassen. Ich würde gerne die Konstruktoren dieser Klassen aus Coverage-Statistiken ausschließen, so dass ich das Attribut ExcludeFromCodeCoverage zu der T4-Vorlage hinzugefügt habe, die die Klassen wie erwartet wiedererzeugt, z.ExcludeFromCodeCoverage-Attribut mit dotCover in TeamCity 7

using System.Diagnostics.CodeAnalysis; 

public partial class Address 
{ 
    [ExcludeFromCodeCoverage] 
    public Address() 
    { 
     this.Person = new HashSet<Person>(); 
    } 

    ... 
} 

Ich versuche, diese auf Verfahren Ebene hinzuzufügen, da es einige Teilklassen mit benutzerdefinierter Logik, die in Code-Coverage-Statistiken getestet und enthalten werden muss.

Von dem, was ich die ExcludeFromCodeCoverage gelesen haben automatisch ausgeschlossen werden sollte, wenn dotCover verwenden, aber ich bin mir nicht sicher, ob dies wahr ist, wenn es über Teamcity laufen, so enthalten ich den Filter wie in Attribute filter syntax for code coverage in TeamCity erwähnt (beide ExcludeFromCodeCoverage und ExcludeFromCodeCoverageAttribute versuchen) mit kein Glück.

Dank

Antwort

13

Ich habe die gleiche TeamCity-Version wie Ihre. Es funktioniert gut für mich. Sie sollten überprüfen, ob Ihre Konfiguration korrekt ist.

Sie sollten den Attributnamen im Abschnitt Attributfilter: angeben. In Ihrem Fall soll der Text sein:

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

Marked-Mitglieder sollen (für Klassen) nicht angezeigt werden oder grün markiert/rot in Ihnen Ihre Teamcity Berichterstattung Bericht.

Weitere Anweisungen können here

ich ähnliches Problem hatte zu finden. Ich ausgeschlossen von der Deckung generierten Klasse, indem zu meinem „Code-Coverage“ Build-Schritt:

-:assembly=<assembly name>*;type=*<part of generated classname>*;method=*

+0

Dieser Kommentar nicht direkt an Teamcity & dotCover verwandt ist, aber für diejenigen, die 'DotCover.exe' Befehlszeile Um den mit dem 'ExcludeFromCodeCoverage' Attribut gekennzeichneten Code auszuschließen, sollten Sie folgendes' dotCover.exe analyze .../AttributeFilters = System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute' verwenden, Sie brauchen nicht die '-:' Syntax wie mit der '/ Filters =' Parameter. –

Verwandte Themen