JAVA Jacoco 不正确的行覆盖
JAVA Jacoco Incorrect line coverage
我正在尝试使用 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 覆盖时,它会受到影响:
想法?
仅供参考:
我假设您是 运行 jacoco 作为 java 代理(运行时工具)。
在这种情况下,jacoco 进行的字节码检测和 PowerMock 进行的字节码修改之间可能存在 class。
因此,可能未涵盖的 classes 是使用 PowerMock classloader 加载的 classes。
我正在尝试使用 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 覆盖时,它会受到影响:
想法?
仅供参考:
我假设您是 运行 jacoco 作为 java 代理(运行时工具)。 在这种情况下,jacoco 进行的字节码检测和 PowerMock 进行的字节码修改之间可能存在 class。
因此,可能未涵盖的 classes 是使用 PowerMock classloader 加载的 classes。