Как установить уровни покрытия кода jacoco для модуля в gradle
Я использую gradle 4.3.1 с плагином jacoco, и я могу обеспечить определенный уровень охвата кода в проекте с несколькими модулями. Это отлично работает, когда я устанавливаю элемент CLASS или PACAKAGE, но я не понимаю, как заставить его работать для модуля.
В поисках здесь Я думаю, что я хочу 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
Я предполагаю, что мне не хватает чего-то довольно простого, так как я не думаю, что я первый, кто попытается это сделать. Любая помощь будет оценена!
Ответы
Ответ 1
Я не очень уверен в этом, но вы можете попробовать добавить счетчик = '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