Я пытаюсь настроить свой проект на запуск JaCoCo и сбой сборки, если он имеет менее 80% тестового покрытия. Предостережение в том, что я хочу исключить конкретный файл, и мне кажется, что это не работает. Я поискал в Интернете и прочитал кучу ответов на Stack Overflow, сообщения в блогах и документацию по плагину, но я не могу заставить ничего работать. Он всегда по-прежнему включает файл, который я пытаюсь исключить.
Я начал с:
tasks.jacocoTestCoverageVerification {
violationRules {
rule {
limit {
minimum = "0.8".toBigDecimal()
}
}
}
}
, который, очевидно, будет включать все, что и есть. Я пробовал следующие варианты, основанные на том, что я прочитал, но ни один из них не работал:
tasks.jacocoTestCoverageVerification {
violationRules {
rule {
classDirectories.setFrom(sourceSets.main.get().output.asFileTree.matching {
exclude("path.to.my.class.HelloWorld")
})
limit {
minimum = "0.8".toBigDecimal()
}
}
}
}
tasks.jacocoTestCoverageVerification {
classDirectories.setFrom(
sourceSets.main.get().output.asFileTree.matching {
exclude("path.to.my.class.HelloWorld")
}
)
violationRules {
rule {
limit {
minimum = "0.8".toBigDecimal()
}
}
}
}
tasks.jacocoTestCoverageVerification {
violationRules {
rule {
limit {
minimum = "0.8".toBigDecimal()
}
}
}
}
tasks {
getByName<JacocoReport>("jacocoTestReport") {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.map {
fileTree(it) {
exclude("path.to.my.class.HelloWorld")
}
}))
}
}
}
tasks.jacocoTestCoverageVerification {
violationRules {
rule {
limit {
minimum = "0.8".toBigDecimal()
}
}
}
}
tasks.withType<JacocoReport> {
classDirectories.setFrom(
sourceSets.main.get().output.asFileTree.matching {
exclude("path.to.my.class.HelloWorld")
}
)
}
Результат всех них точно такой же:
Execution failed for task ':jacocoTestCoverageVerification'.
> Rule violated for bundle OneUIBackend: instructions covered ratio is 0.6, but expected minimum is 0.8
Кто-нибудь знает, как это сделать правильно?