2012-04-23 11 views
12

Configure cobertura to ignore certain blocks of codeLombok adnotacje vs pokrycia kodu w Cobertura lub podobnym narzędziem

Z tego co czytałem z powyższym pytanie, nie ma mowy w Cobertura wykluczyć daną część kodu z badanej w porównaniu z konieczności pokrycia w testach.

Czy to prawda?/Czy jest to możliwe w jakimkolwiek podobnym narzędziu?

mam usuing Lombok adnotacje @Getter, @Setter i tak dalej, które są świetne, ale wynikające z bycia „czerwony” w raporcie zasięgu, nawet jeśli mam testowanie metod getter i setter. - Chciałbym coś z tym zrobić ... Czy jest jakiś sposób, aby to naprawić?

Odpowiedz

4

Czy nie można najpierw uruchomić kodu delombok na podstawie testowanego kodu, skompilować go, a następnie zaprogramować przy pomocy Cobertura?

Ujawnienie: Jestem jednym z twórców projektu Lombok

+2

Jak pomogłoby to? Delombok nie pozbywa się programów pobierających/ustawiających, które są nadal pokazywane jako "czerwone" w zasięgu. –

+0

Również w moim przypadku, niektóre kody testowe wymagają wygenerowania metod 'hashcode' i' equals' do poprawnego działania. Z delombokowanym kodem testy się zepsuły. –

+3

Dlaczego testy miałyby być równe i hashCode? Czy coś jest nie tak z wygenerowanym kodem? –

0

W moim przypadku dodawania zależności lombock w pom.xml przyczyna Cobertura spadać Branch Coverage o 70%, a to spowodowało usunięcie Netbeans zadeklarować kod jako uszkodzony, ponieważ nie zdefiniowano akcesora.

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

edycja Rozwiązaniem było obniżyć lombock. Ta wersja miała problemy z bieżącymi konfiguracjami sonaru. Ale nie jestem odpowiedzialny za te konfiguracje, więc nie rozumiem, dlaczego.

3

Lombok dodaje adnotację @javax.annotation.Generated (1). Ale ta adnotacja ma source retencji, czyli narzędzie pokrycia nie widzę go już więcej :-(

Lombok 1.16.14 tylko stałe issue-1014 dodając opcję generowania @lombok.Generated adnotacji zamiast, po prostu skonfigurować lombok.addLombokGeneratedAnnotation (2).

Cobertura może być skonfigurowany tak, aby pominąć metody z jakiejś adnotacji, więc większość wygenerowanego kodu nie będą wliczane do pokrycia.

JaCoCo nie zapewnia mechanizm konfiguracji, aby przejść na niektórych adnotacji. Issue-15 próbuje napraw to (i wiele więcej) bez konieczności jakiejkolwiek konfiguracji

(1) Jeśli nie jest wyłączona z lombok.addGeneratedAnnotation który jest teraz przestarzała i powinna być zastąpiona lombok.addJavaxGeneratedAnnotation
(2) zobacz lombok config
(3) zobacz this comment

Powiązane problemy