Je dois vérifier la couverture minimale avec la nouvelle tâche de jacocoComment puis-je vérifier la couverture minimale avec certaines classes exclues et avec le plugin jacoco?
jacocoTestCoverageVerification
Cette tâche est disponible avec la version 3.4.1 gradle et avec le plugin jacoco> = 0.6.3
Je pourrais exécuter une autre tâche qui génère un rapport html avec la couverture de branche mais maintenant je veux utiliser ce nombre pour faire échouer la construction.
C'est mon code
buildscript {
ext {
....
}
repositories {
mavenCentral()
maven {
....
}
}
dependencies {
.....
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'jacoco'
jar {
baseName = "coverage-test"
}
dependencies {
// my dependencies
}
eclipse {
classpath {
containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
}
}
wrapper {
gradleVersion = '3.4.1'
}
jacoco {
toolVersion = '0.7.9'
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
}
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(
dir: it,
excludes:
[
'com/jacoco/dto/**',
'com/jacoco/configs/**',
//and others
])
})
}
}
jacocoTestCoverageVerification {
//I tried this and it didn't work
// classDirectories = files(classDirectories.files.collect {
// fileTree(
// dir: it,
// excludes:
// [
// 'com/jacoco/dto/**',
// 'com/jacoco/configs/**',
// //and others
// ])
// })
violationRules {
rule {
//Also tried this and it didn't work
// excludes = ['com/jacoco/dto/**', ...]
limit {
counter = 'BRANCH'
minimum = 0.8
}
}
}
}
check.dependsOn jacocoTestCoverageVerification
Avec classDirectories-je obtenir l'erreur suivante Impossible d'obtenir la propriété 'fichiers' sur l'objet null. Et avec la deuxième option (seulement exclut), la construction s'exécute sans problème mais n'exclut aucune classe.
est BTW ici un point essentiel de ce que j'ai essayé dans mon projet (et il a travaillé): https://gist.github.com/sm4/1cacc5d8b6d99cac84336ab4df06d1bd et c'est le projet: https://github.com/ sm4/promo-codes – sm4
Oui vous aviez raison, j'essayais de mesurer deux choses différentes. Aussi, j'essaye avec votre configuration d'ajouter une règle de vérification et cela fonctionne. Merci!! –