2012-04-23 9 views
12

Configure cobertura to ignore certain blocks of codeLombok annotazioni vs copertura del codice in Cobertura o un attrezzo simile

Da quello che ho letto da sopra domanda, non c'è modo in Cobertura da escludere dato parte dal codice in fase di sperimentazione contro avere la copertura nei test.

È vero?/E 'possibile in uno strumento simile?

sto usuing Lombok annotazioni @Getter, @Setter e così via, che sono grandi, ma risultano in essere 'rosso' nella relazione di copertura, anche se sto testando metodi getter e setter. - Mi piacerebbe fare qualcosa con quello ... C'è un modo per sistemarlo?

risposta

4

Non è possibile prima eseguire delombok sul codice in prova, compilarlo e quindi lo strumento da Cobertura?

Disclosure: Io sono uno degli sviluppatori del progetto Lombok

+2

Come questo aiuto? Delombok non si sbarazza dei getter/setter, che sono ancora mostrati "rossi" nella copertura. –

+0

Anche nel mio caso, alcuni codici di test richiedono che i metodi 'hashcode' e' equals' funzionino correttamente. Con il codice delomboked, i test si interrompevano. –

+3

Perché i test si interrompono su uguaglianza e hashCode? C'è qualcosa di sbagliato nel codice generato? –

0

Nel mio caso aggiungendo le dipendenze lombock in pom.xml causa cobertura a cadere Branch copertura del 70% durante la rimozione ha causato Netbeans dichiarare codice come rotto, dal momento che nessun accessor è definito.

 <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.14.4</version> 
      <scope>provided</scope> 
     </dependency> 

modificare la soluzione è stata di declassare lombock. Questa versione ha avuto problemi con le attuali configurazioni di sonar. Ma non sono responsabile di quelle configurazioni, quindi non riesco a capire perché.

3

Lombok aggiunge un'annotazione @javax.annotation.Generated (1). Ma questa annotazione ha source ritenzione, cioè lo strumento di copertura non può vederlo più :-(

Lombok 1.16.14 appena fissato issue-1014 con l'aggiunta di un'opzione per generare un'annotazione @lombok.Generated invece, basta configurare lombok.addLombokGeneratedAnnotation (2).

Cobertura può essere configurato per saltare metodi con qualche annotazione, quindi la maggior parte del codice generato non conta contro la copertura.

JaCoCo non fornisce un meccanismo di configurazione per saltare su alcune annotazioni. Issue-15 cerca di correggi questo (e molto altro) senza richiedere alcuna configurazione.

(1) Se non disattivato con lombok.addGeneratedAnnotation che ora è deprecato e dovrebbe essere sostituito con lombok.addJavaxGeneratedAnnotation
(2) vedi lombok config
(3) vedere this comment

Problemi correlati