找不到方法jacocoTestCoverageVerification()

时间:2017-09-03 11:16:19

标签: gradle jacoco

我希望在测试覆盖率不足时让jacoco插件失败。我使用gradle页面中的示例: https://docs.gradle.org/current/userguide/jacoco_plugin.html

apply plugin: 'jacoco'

jacoco {
    toolVersion = "0.7.6.201602180812"
    reportsDir = file("output/jacoco/customJacocoReportDir")
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.enabled true
        html.destination file("output/jacoco/jacocoHtml")
    }
}

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                minimum = 0.5
            }
        }

        rule {
            enabled = false
            element = 'CLASS'
            includes = ['org.gradle.*']

            limit {
                counter = 'LINE'
                value = 'TOTALCOUNT'
                maximum = 0.3
            }
        }
    }
}

然而,我收到错误:

  

无法在类型为org.gradle.api.Project的根项目'demo'中找到参数[build_4v41fim1xdl76q49oxk7mnylv $ _run_closure6 @ 18601994]的方法jacocoTestCoverageVerification()。

有人可以提供建议吗?

2 个答案:

答案 0 :(得分:6)

根据 Gradle版本3.4或更高版本的the docs

  

对于同样适用Java插件的项目,JaCoCo插件会自动添加以下任务:

     

jacocoTestReport [...]

     

jacocoTestCoverageVerification [...]

如果问题中的代码块显示完整的build.gradle文件,则表示您需要添加应用Java插件的行(apply plugin: 'java')。

当然,您也可以自己将一个名为jacocoTestCoverageVerification的{​​{3}}类型的任务添加到您的构建文件中:

task jacocoTestCoverageVerification(type: JacocoCoverageVerification) {
    // configuration
}

答案 1 :(得分:2)

尝试使用最新版本的gradle。这可以解决您的问题