2013-01-21 11 views
5

Sto usando EclEmma (all'interno di Eclipse) per eseguire la scansione della copertura del mio codice JUnit. Funziona correttamente, tuttavia, non voglio che EclEmma esegua la scansione della mia cartella src/view poiché contiene codice Swing che ritengo non meritevole di test.Come ignorare la scansione di alcune classi utilizzando EclEmma ed Eclipse?

Esiste un modo per ignorare questa cartella quando EclEmma viene eseguito in modo che: a) venga eseguito più velocemente e b) non altera la percentuale di copertura?

EDIT: struttura

Il mio progetto è:

src/view 
src/model 
src/controller 

ho provato questi (forse altri) con il percorso Record sezione nella pagina Preferenze:

"src/view" 
"src/view/*" 
"view" 
"view/*" 
src/view 

Questi utilizzano la sezione Escludi nella pagina Preferenze:

* 
*View* 
*View*.class 
src/view/*View* 
src/view/*View*.class 

Tutti mi lasciano lo stesso risultato analizzando la mia intera cartella src.

risposta

5

È possibile specify an exclude field:

Non comprende: un elenco di nomi di classi che dovrebbero essere esclusi dall'esecuzione analisi. Le voci dell'elenco sono separate da due punti (:) e possono utilizzare i caratteri jolly (* e?). (Default: vuoto)

Tuttavia, potrebbe essere più facile da usare le loro opzioni per il percorso di classe corrispondente:

Solo voci del percorso corrispondenti: Virgola lista di stringhe separato che deve match con la voce di percorso di classe . Una voce di percorso classe corrisponde al filtro , se contiene una delle stringhe specificate. (Ad esempio "src/main/java", di default: nessun filtro)

Vedi eclemma - how to ignore source su come ignorare le cartelle src.

Inoltre si prega di notare la loro prudenza,

Attenzione: Se le impostazioni non corrispondono qualsiasi percorso di classe POSTs nel progetto (s), ogni nuovo lancio in modalità di copertura avrà un analisi vuoto scopo.

+1

Grazie, sembra quello che voglio. Sfortunatamente, quando ho usato il modello com.test.project.view. * In Escludi, non sembra escludere nulla. EDIT: Whoops, non ho notato che ha detto nomi di classe ... – sdasdadas

+0

Credo che questa sia la risposta corretta ma non credo che funzioni effettivamente in EclEmma. Accetto ma se qualcuno dovesse leggerlo, sappia che non riesco a capire come includere o escludere classi o percorsi. – sdasdadas

+0

@sdasdadas Mi spiace sentirlo, potresti pubblicare quello che hai provato? Se ci sono errori di battitura, non funzionerà affatto. – stevebot

6

[modifica] manutentori dice che non si può, ad eccezione di uno il livello di directory di origine: https://github.com/jacoco/eclemma/issues/70

ho pensato file eclemma non è stato escluso: è. Solo non come pensavo.

Quando si esclude le preferenze e si specifica your.classes.here. *, Ad esempio, ciò significa che le classi non verranno conteggiate per coprire tutto il codice, non che quelle classi non saranno incluse in cosa deve essere coperto dai test.

Provalo e guarda. Cerca di escludere un corso in cui sai di avere una copertura.Dopo averlo inserito nella preferenza esclude, in una nuova esecuzione di copertura saranno ancora presenti nella finestra di copertura, ma verranno visualizzati come 0% e saranno tutti in rosso.

Piuttosto inutile se me lo chiedi. Sto ancora cercando una soluzione adeguata per escludere classi per nome dalle classi che devono essere coperte dai test.

+1

Sto affrontando lo stesso problema, c'è una soluzione per risolvere questo –

1

Mi sono arreso su EclEmma perché non riesco a farlo fare le cose che voglio che faccia, quindi uso un metodo diverso - lo documenterò qui nel caso in cui aiuti qualcun altro.

  1. Per escludere le classi dal test, nome tutte le mie classi di test come * Case.java e quindi includo o escludo tramite SuiteClasses. Puoi leggere ulteriori informazioni al riguardo a https://github.com/junit-team/junit4/wiki/Aggregating-tests-in-suites
  2. Per misurare la copertura, utilizzo Maven e Cobertura. Questo testerà solo i file specificati nelle suite di test e produrrà di conseguenza rapporti sulla copertura.
Problemi correlati