jacoco的Gradle构建控制台输出说它比实际值低%

问题描述 投票:1回答:1

我正在尝试使用jacoco进行gradle构建,但是失败了,因为覆盖率低于“预期”。但是,当我打开生成的HTML文件时,它实际上高于我设置的最小值。

我尝试排除更多文件以进行分析,但这没有帮助。


jacoco {
    toolVersion = "0.8.4"
//    applyTo test
}

jacocoTestReport.dependsOn(test)

// this just ensures it runs with for build, but not for non-builds (like tests)
build {
    finalizedBy jacocoTestReport

    // this will do checks on the violations + fail build if there's too little coverage
    finalizedBy jacocoTestCoverageVerification
}

jacocoTestReport {
    reports {
        csv.enabled false
        xml.enabled false
        html.enabled true

        // setting the output location for html stuff
        html.destination file("${buildDir}/reports/jacoco")
    }

    afterEvaluate {
        classDirectories.setFrom(files(classDirectories.files.collect {
            fileTree(dir: it, exclude: [...files...])
        }))
    }
}

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                // % in decimal form for when build should fail
                minimum = 0.75
            }
        }
    }
}

我在构建中得到的结果是:指令覆盖率是0.74,但预期最小值是0.75

但是您在https://i.imgur.com/MO2GMlK.png中看到的是80%。为什么会这样?

gradle kotlin code-coverage jacoco
1个回答
0
投票

类排除可能未应用到jacocoTestCoverageVerification任务。

您是否也尝试在jacocoTestCoverageVerification任务中应用排除项?

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                // % in decimal form for when build should fail
                minimum = 0.75
            }
        }
    }

    afterEvaluate {
            classDirectories.setFrom(files(classDirectories.files.collect {
                fileTree(dir: it, exclude: [...files...])
            }))
        }
    }
}

类似于:https://stackoverflow.com/a/55953573/7105883

© www.soinside.com 2019 - 2024. All rights reserved.