abi*_*ter 4 kotlin build.gradle
我试图从 jacoco 覆盖率报告中排除一些生成的类。使用 groovy 运行良好,但在转换为 Kotlin 后它不起作用
tasks.withType<JacocoCoverageVerification> {
afterEvaluate {
files(classDirectories.files.forEach() {
fileTree(it).apply {
exclude("com/generate/**")
}
})
}
violationRules {
rule {
limit {
minimum = BigDecimal(0.30)
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
tasks.getByName("check")
.dependsOn(tasks.getByName("jacocoTestCoverageVerification"))
Run Code Online (Sandbox Code Playgroud)
但违规规则运作良好。
这是jacoco plugin对 on 的限制kotlin。由于这classDirectories不是最终的,我们不能走老路。我们需要使用方法classDirectories.setFrom来设置值。
tasks.withType<JacocoCoverageVerification> {
violationRules {
rule {
limit {
minimum = BigDecimal(0.62)
}
}
}
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.map {
fileTree(it).apply {
exclude("com/generate/**")
}
}))
}
}
tasks.withType<JacocoReport> {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.map {
fileTree(it).apply {
exclude("com/generate/**")
}
}))
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2257 次 |
| 最近记录: |