2013-10-25 12 views
7

Sto cercando di riflettere più accuratamente la copertura del codice in un progetto su cui sto lavorando ma ho incontrato un problema quando si tratta di classi generate da Entity Framework. Vorrei escludere i costruttori di queste classi dalle statistiche di copertura, quindi ho aggiunto l'attributo ExcludeFromCodeCoverage al modello T4 che rigenera le classi come mi aspetterei ad es.Attributo ExcludeFromCodeCoverage con dotCover in TeamCity 7

using System.Diagnostics.CodeAnalysis; 

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

    ... 
} 

che sto tentando di aggiungere questo a livello di metodo in quanto vi sono alcune classi parziali che contengono logica personalizzata che ha bisogno di essere testato e incluso nel statistiche code coverage.

Da quello che ho letto il ExcludeFromCodeCoverage dovrebbero essere esclusi automaticamente quando si utilizza dotCover ma non sono sicuro se questo era vero quando si esegue tramite TeamCity, così ho inserito il filtro, come indicato nel Attribute filter syntax for code coverage in TeamCity (cercando sia ExcludeFromCodeCoverage e ExcludeFromCodeCoverageAttribute) con senza fortuna.

Grazie

risposta

13

ho la stessa versione TeamCity ai suoi. Funziona bene per me. Dovresti controllare se la tua configurazione è corretta.

È necessario specificare il nome dell'attributo nella sezione Filtri attributo :. Nel tuo caso il testo dovrebbe essere: non devono essere visualizzati

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

membri segnati (per le classi) o contrassegnati verde/rosso in voi il vostro rapporto di copertura TeamCity.

Più istruzioni possono essere trovati here

ho avuto il problema simile. Ho escluso classe generata dalla copertura con l'aggiunta al mio "copertura Codice" passaggio di generazione:

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

+0

Questo commento non è direttamente correlata alla TeamCity & dotCover, ma per coloro che utilizzano la linea di comando 'DotCover.exe' , per escludere il codice contrassegnato con l'attributo 'ExcludeFromCodeCoverage' dovresti usare il seguente' analisi dotCover.exe .../AttributeFilters = System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute', non hai bisogno della sintassi '-:' come con il parametro '/ Filters ='. –