Невозможно исключить сгенерированные классы из тестового покрытия kotlin jacoco - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь исключить некоторые сгенерированные классы из отчета о покрытии jacoco. Который работает нормально с Groovy, но после преобразования в Kotlin он не работает

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

    }

}

}

tasks.getByName("check")
.dependsOn(tasks.getByName("jacocoTestCoverageVerification"))

Но правило нарушения работает отлично.

1 Ответ

1 голос
/ 02 мая 2019

Это ограничение с jacoco plugin на 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/**")
            }
        }))
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...