2015-04-08 9 views
12

Ich benutze JaCoCo und es werden Methoden betrachtet, die von Lombok erzeugt werden (generiert im Bytecode, keine Spur davon im Quellcode). Wie kann ich JaCoCo so konfigurieren, dass sie ignoriert werden?JaCoCo: generierte Methoden ausschließen (mit Lombok verwenden)

+0

Mögliches Duplikat [Lombok Anmerkungen vs Code-Coverage in Cobertura oder einem ähnlichen Werkzeug] (http://stackoverflow.com/questions/10276666/lombok-annotations-vs-code-coverage-in-cobertura-or- Ähnliches Tool) –

Antwort

2

Verwenden Sie das Excludes-Tag von jacoco.

  <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.4.201502262128</version> 
      <configuration> 
       <excludes> 
        <exclude>**/config/**</exclude> 
        <exclude>**/model/**</exclude> 
        <exclude>**/item/**</exclude> 
       </excludes> 
      </configuration> 
+1

Dies funktioniert nur teilweise, da Filter nur Filterklassen ausschließen. Ich denke, dass Sie alle generierten Code nicht nur Klassen ausgeschlossen werden. Sollte für '@ Builder' arbeiten, aber nicht für Methoden, die von' @Data' generiert werden - noch im Gespräch, siehe https://github.com/jacoco/jacoco/wiki/FilteringOptions. Da lombok 'Generated' zum generierten Code hinzufügt, sollte JaCoCo das herausfiltern, aber das ist ein fehlendes Feature. –

+1

@ArneBurmeister Das liegt daran, dass '@ Generated' Retention == SOURCE hat, aber JaCoCo nur den Bytecode analysiert und daher diese Information nicht enthält. – namero999

+1

@ namero999 Sie haben recht, übersehen Sie das, aber ein Annotationsfilter wäre großartig, da Lombok seine eigene 'lombok.Generated' Annotation hinzufügt (nicht die von' javax.annotation'). –

Verwandte Themen