JAVA Jacoco Неправильное покрытие линии - PullRequest
2 голосов
/ 26 января 2020

Я пытаюсь использовать Jacoco для получения покрытия кода для проекта Java 8. По какой-то причине я вижу покрытие нижней линии.

Версия 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'
}

Когда я использую отладчик Java, я вижу во время тестов, что есть попадание для следующей строки:

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

Но в покрытии: Jacoco coverage

И когда я запускаю покрытие с использованием покрытия IntelliJ он получает удар: IntelliJ coverage

Идеи?

1 Ответ

0 голосов
/ 26 января 2020

В качестве идеи:

Я предполагаю, что вы используете jacoco в качестве агента java (инструментарий времени выполнения). В этом случае возможно, что существует класс между инструментарием байт-кода, сделанным jacoco, и модификациями байт-кода, сделанными PowerMock.

В результате, возможно, что не охваченные классы являются классами, которые были загружены с PowerMock загрузчик классов.

См. это объяснение

...