2017-12-22 177 views
10

Używam gradle 4.3.1 z wtyczką jacoco i jestem w stanie zapewnić pewien poziom pokrycia kodu w projekcie wielomodułowym. Działa to znakomicie, gdy ustawiam element na CLASS lubCLOS PACAKAGE, ale nie jestem pewien jak sprawić, by działał na moduł.Jak ustawić poziomy pokrycia kodu jacoco do modułu w gradle

Patrząc here myślę co chcę jest BUNDLE lub GROUP, ale potem jacoco nie pęka, kiedy idę na podstawie wysokości pokrycia.

Oto przykład tego, co mam, że działa dla wykonania pokrycia poziomie pakietu:

jacocoTestCoverageVerification { 
    violationRules { 
     rule { 
      // should be element = 'BUNDLE' or 'GROUP'? 
      element = 'PACKAGE' 

      limit { 
       minimum = 0.9 
      } 
      includes = ['com.mypackage.*'] 
     } 
    } 
} 

Kiedy zmienić wartość elementu do Bundle kompilacji nie powiedzie się bez pokrycia. Ponownie chciałbym móc kontrolować oczekiwania na poziomie modułu.

Oto moja wersja Gradle informacje:

------------------------------------------------------------ 
Gradle 4.3.1 
------------------------------------------------------------ 

Build time: 2017-11-08 08:59:45 UTC 
Revision:  e4f4804807ef7c2829da51877861ff06e07e006d 

Groovy:  2.4.12 
Ant:   Apache Ant(TM) version 1.9.6 compiled on June 29 2015 
JVM:   1.8.0_40 (Oracle Corporation 25.40-b25) 
OS:   Windows 8.1 6.3 amd64 

Zgaduję, że jestem brakuje czegoś całkiem proste, ponieważ nie sądzę, jestem pierwszy, aby spróbować to zrobić. Każda pomoc będzie doceniona!

Odpowiedz

1

Nie jestem tego pewien, ale czy mógłbyś spróbować dodać wewnętrzny limit "LINE".

rule { 
     element = 'GROUP' 

     limit { 
      minimum = 0.9 
      counter = 'LINE' 
     } 
... 

Oprócz tego także spróbować dodać jacocoTestReport generowania raportu testową, aby sprawdzić swój wynik tylko dla celów testowania wewnętrznego.

jacocoTestReport { 
    reports { 
     xml.enabled false 
     csv.enabled false 
     html.destination file("${buildDir}/jacocoHtml") 
    } 
} 

Źródło: https://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:jacoco_report_configuration

+0

Tak, niestety próbowałem to samo i nie zmienia wynik. Generowałem dane wyjściowe HTML i widzę, że całkowite pokrycie modułu wynosi 85%. – Tristan