jacocoTestCoverageVerification:gitlab 如何计算测试覆盖率 - Spring 启动?

jacocoTestCoverageVerification : How gitlab counts test coverage - Spring Boot?

我有一个项目,其中使用了 Sprig Boot、JUnit 和 Gradle。在 Gradle 依赖项中,我发现了以下几行:

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                minimum = Float.parseFloat(System.getenv().getOrDefault("CI_TEST_COVERAGE_REQUIRED", "0.7"))
            }
        }
    }
}

正如我所说,这些行表明在 Gitlab 中测试覆盖率至少必须达到 70%。

当我在 IntelliJ IDE 中进行 运行 覆盖测试时,我得到了 3 个测量值,如图所示。

所以,我们得到了3个不同的值,代表了几种类型。

所以我担心的是如何从这 3 个值中计算出一个值 70%?

有什么方法或命令可以得到这个 70% 或 .7 的值吗?

通过阅读 JacocoCoverageVerification to JacocoViolationRule and finally JacocoLimit#getCounter

中的文档

The counter that applies to the limit as defined by org.jacoco.core.analysis.ICoverageNode.CounterEntity. Valid values are INSTRUCTION, LINE, BRANCH, COMPLEXITY, METHOD and CLASS. Defaults to INSTRUCTION.

所以默认是INSTRUCTION,当然你可以将counter的值指定为CLASSMETHODLINE.

如果您想知道LINEINSTRUCTION之间的区别,请查看