2015-04-08 12 views
12

Używam JaCoCo i rozważa metody generowane przez Lombok (generowane w kodzie bajtowym, bez śladu ich w kodzie źródłowym). Jak skonfigurować JaCoCo, aby je zignorować?JaCoCo: wyklucz generowane metody (używając go z Lombok)

+0

Możliwe duplikat [opisów Lombok vs pokrycia kodu w Cobertura lub podobnego narzędzia] (http://stackoverflow.com/questions/10276666/lombok-annotations-vs-code-coverage-in-cobertura-or- podobne narzędzie) –

Odpowiedz

2

Użyj znacznika wykluczeń dostarczonego przez 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

Działa to tylko częściowo jako wykluczające filtry tylko klasy filtrujące. Myślę, że wykluczysz cały wygenerowany kod nie tylko z klas. Powinien działać dla '@ Builder', ale nie dla metod generowanych przez' @ Data' - wciąż w dyskusji, zobacz https://github.com/jacoco/jacoco/wiki/FilteringOptions. Jako że lombok dodaje '@ Generated' do wygenerowanego kodu, JaCoCo powinien go odfiltrować, ale jest to brakująca funkcja. –

+1

@ArneBurmeister Dzieje się tak dlatego, że '@ Generated' ma retencję == SOURCE, ale JaCoCo analizuje tylko kod bajtowy, w związku z czym brakuje tej informacji. – namero999

+1

@ Namero999 masz rację, nadzór nad tym, ale filtr adnotacji byłby świetny, ponieważ lombok dodaje własną adnotację 'lombok.Generated' (nie z' javax.annotation'). –