2 votes

JAVA Jacoco Couverture de ligne incorrecte

Je suis en train d'essayer d'utiliser Jacoco pour obtenir la couverture de code pour un projet Java 8. Pour une raison quelconque, je vois une faible couverture de lignes.

Version de Gradle: 4.8.1

Gradle.build

apply plugin: "java"
apply plugin: "jacoco"

jacoco {
    toolVersion = "0.8.5    "
    reportsDir = file("$buildDir/customJacocoReportDir")
}
jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination file("${buildDir}/jacocoHtml")
    }
}
dependencies {
    testCompile group: 'org.easymock', name: 'easymock', version: '3.6'
    testCompile group: 'org.powermock', name: 'powermock-easymock-release-full', version: '1.6.4'
}

Lorsque j'utilise le débogueur Java je vois pendant les tests qu'il y a un hit pour la ligne suivante:

public class RangeStateStore {
    public void setRangeState(KeyValueStore  kvStorage, RangeStateObj rangeStateObj) {
        kvStorage.put(rangeStateObj.key, rangeStateObj);
    }

Mais dans la couverture: Couverture Jacoco

Et lorsque je lance la couverture en utilisant la couverture IntelliJ ça fonctionne: Couverture IntelliJ

Des idées?

0voto

Mark Bramnik Points 4472

Juste une idée:

Je suppose que vous exécutez jacoco en tant qu'agent Java (instrumentation à l'exécution). Dans ce cas, il est possible qu'il y ait une classe entre l'instrumentation du bytecode réalisée par jacoco et les modifications du bytecode réalisées par PowerMock.

Par conséquent, il est possible que les classes qui ne sont pas couvertes soient les classes chargées avec le chargeur de classes PowerMock.

Voir cette explication

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X