【问题标题】:JAVA Jacoco Incorrect line coverageJAVA Jacoco 不正确的行覆盖
【发布时间】:2020-05-12 01:48:00
【问题描述】:

我正在尝试使用 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);
    }

但在报道中:

当我使用 IntelliJ 覆盖运行覆盖时,它会受到影响:

想法?

【问题讨论】:

    标签: java gradle code-coverage jacoco


    【解决方案1】:

    只是一个想法:

    我假设您将 jacoco 作为 java 代理(运行时检测)运行。 在这种情况下,jacoco 进行的字节码检测和 PowerMock 进行的字节码修改之间可能存在一个类。

    因此,未涵盖的类可能是使用 PowerMock 类加载器加载的类。

    this explanation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      相关资源
      最近更新 更多