Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从kotlin jacoco测试覆盖范围中排除生成的类_Kotlin_Build.gradle - Fatal编程技术网

无法从kotlin jacoco测试覆盖范围中排除生成的类

无法从kotlin jacoco测试覆盖范围中排除生成的类,kotlin,build.gradle,Kotlin,Build.gradle,我试图从jacoco覆盖率报告中排除一些生成的类。这在groovy中运行良好,但在转换为Kotlin之后就不起作用了 tasks.withType<JacocoCoverageVerification> { afterEvaluate { files(classDirectories.files.forEach() { fileTree(it).apply { exclude("com/generate/**") }

我试图从jacoco覆盖率报告中排除一些生成的类。这在groovy中运行良好,但在转换为Kotlin之后就不起作用了

tasks.withType<JacocoCoverageVerification> {
afterEvaluate {
     files(classDirectories.files.forEach() {
        fileTree(it).apply {
            exclude("com/generate/**")
        }
    })
}
violationRules {
    rule {
        limit {
            minimum = BigDecimal(0.30)
        }

    }

}

但违反规则的情况很好。

这是对
kotlin
上的
jacoco插件的限制。由于
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/**")
            }
        }))
    }
}
tasks.withType{
违反规则{
统治{
极限{
最小值=大十进制(0.62)
}
}
}
后评价{
classDirectories.setFrom(文件)(classDirectories.files.map{
文件树(it).apply{
排除(“com/generate/**”)
}
}))
}
}
tasks.withType{
后评价{
classDirectories.setFrom(文件)(classDirectories.files.map{
文件树(it).apply{
排除(“com/generate/**”)
}
}))
}
}

太棒了……我一直在寻找答案……这一个很有效……这正是所需要的。谢谢
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/**")
            }
        }))
    }
}