如何在gradle中将jacoco代码覆盖级别设置为模块

Tri*_*tan 11 java code-coverage gradle jacoco build.gradle

我正在使用gradle 4.3.1和jacoco插件,我能够在多模块项目中确保一定程度的代码覆盖率.当我将元素设置为CLASSPACAKAGE时,这很有,但我很难理解如何让它适用于模块.

这里我想我要的是管束集团,但后来当我去覆盖量下jacoco不破.

以下是我所拥有的适用于包级别覆盖实施的示例:

jacocoTestCoverageVerification {
    violationRules {
        rule {
            // should be element = 'BUNDLE' or 'GROUP'? 
            element = 'PACKAGE'

            limit {
                minimum = 0.9
            }
            includes = ['com.mypackage.*']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我将元素值更改为BUNDLE时,无论覆盖范围如何,构建都不会失败.我希望能够在模块级别控制期望值.

这是我的gradle版本信息:

------------------------------------------------------------
Gradle 4.3.1
------------------------------------------------------------

Build time:   2017-11-08 08:59:45 UTC
Revision:     e4f4804807ef7c2829da51877861ff06e07e006d

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_40 (Oracle Corporation 25.40-b25)
OS:           Windows 8.1 6.3 amd64
Run Code Online (Sandbox Code Playgroud)

我猜我错过了一些非常简单的东西,因为我不认为我是第一个尝试这样做的人.任何帮助,将不胜感激!

Aka*_*ani 1

我对此不太确定,但是您可以尝试在限制内添加 counter='LINE' 吗?

rule {
       element = 'GROUP'

       limit {
           minimum = 0.9
           counter = 'LINE'
       }
...
Run Code Online (Sandbox Code Playgroud)

除此之外,还尝试添加 jacocoTestReport 来生成测试报告以验证您的结果,仅用于内部测试目的。

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination file("${buildDir}/jacocoHtml")
    }
}
Run Code Online (Sandbox Code Playgroud)

来源:https ://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:jacoco_report_configuration