Problema:
Ho un progetto con jacoco e voglio essere in grado di filtrare determinate classi e / o pacchetti.
Documentazione correlata:
Ho letto la seguente documentazione:
Ufficiale jacocosito: http://www.eclemma.org/jacoco/index.html
Ufficiale jacoco documenti per Gradle: https://gradle.org/docs/current/userguide/jacoco_plugin.html
Ufficiale jacoco Github
problemi, lavorando sulla copertura:
https://github.com/jacoco/jacoco/wiki/FilteringOptions
https://github.com/jacoco/jacoco/issues/14
Link StackOverflow correlati:
JaCoCo & Gradle - Opzioni di filtro (Nessuna risposta)
Escludere i pacchetti dal report Jacoco utilizzando Sonarrunner e Gradle (non utilizzandosonar)
JaCoCo - esclude JSP dal rapporto (sembra funzionare perEsperto di, Sto usando Gradle)
Configurazione di Maven Jacoco - Esclude classi / pacchetti dal report che non funziona (sembra funzionare perEsperto di, Sto usando Gradle)
JaCoCo gradle plugin exclude (Impossibile farlo funzionare)
Gradle Jacoco - i rapporti di copertura includono le classi escluse nella configurazione (sembra molto vicino, ha usato doFirst
, non ha funzionato per me)
Esempio di quello che ho provato:
apply plugin: 'java'
apply plugin: 'jacoco'
buildscript {
repositories {
mavenCentral()
jcenter()
}
}
repositories {
jcenter()
}
jacocoTestReport {
reports {
xml {
enabled true // coveralls plugin depends on xml format report
}
html {
enabled true
}
}
test {
jacoco {
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpFile = file("$buildDir/jacoco/classpathdumps")
excludes = ["projecteuler/**"] // <-- does not work
// excludes = ["projecteuler"]
}
}
}
Domanda:
Come posso escludere determinati pacchetti e classi durante la generazione del file jacoco rapporti di copertura?
packages
online usando Codecov
? Inoltre, ho visto il Github
, che dire del Android
supporto, ho visto Java
. Dovrei comunque inviarti tutti i rapporti, quindi filtrare dopo e filtrare prima.
excludes
dalla documentazione ufficiale in realtà fare allora? È praticamente inutile?
excludes
tratta dell'attività di copertura, ma dell'attività di prova. Esclude la strumentazione dei file da JaCoCo e quindi la registrazione della copertura. Puoi usarlo se non vuoi registrare la copertura per alcune classi, se non puoi a causa di qualche conflitto con un altro agente di strumentazione o perché hai pre-strumentato le classi. Ciò non escluderà una classe dalla relazione, soprattutto nell'ultimo caso citato, questa sarebbe un'idea orribile.