我使用gradle 4.3.1和jacoco插件,我能够在多模块项目中确保一定程度的代码覆盖率。当我将元素设置为 CLASS 或 PACAKAGE 时,这很有用,但我很难知道如何让它适用于模块。
看here我认为我想要的是 BUNDLE 或 GROUP ,但是当我进入保险金额时,jacoco不会中断。
以下是我所拥有的适用于包级别覆盖率实施的示例:
jacocoTestCoverageVerification {
violationRules {
rule {
// should be element = 'BUNDLE' or 'GROUP'?
element = 'PACKAGE'
limit {
minimum = 0.9
}
includes = ['com.mypackage.*']
}
}
}
当我将元素值更改为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
我猜我错过了一些非常简单的事情,因为我不认为我是第一个尝试这样做的人。任何帮助将不胜感激!
答案 0 :(得分:1)
我对此不太确定,但您可以尝试添加counter =' LINE'内部限制。
rule {
element = 'GROUP'
limit {
minimum = 0.9
counter = 'LINE'
}
...
除此之外,还尝试添加jacocoTestReport以生成测试报告,以验证您的结果仅用于内部测试目的。
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
}
来源:https://docs.gradle.org/current/userguide/jacoco_plugin.html#sec:jacoco_report_configuration