Мы хотели бы использовать Gradle совместно с Kotlin и Jacoco (+ JUnit 5) для генерации отчета о покрытии кода.
Наше дерево каталогов проекта выглядит следующим образом:
project/{src,test}/main/kotlin ...
Наш файл build.gradle выглядит следующим образом:
jacoco {
toolVersion = "0.7.9"
reportsDir = file("$buildDir/reports")
applyTo junitPlatformTest
}
jacocoTestReport {
group = "Reporting"
description = "Generate Jacoco coverage report."
classDirectories = fileTree(
dir: "$buildDir/classes/kotlin/main"
)
def coverageSourceDirs = [
"src/main/kotlin"
]
additionalSourceDirs = files(coverageSourceDirs)
sourceDirectories = files(coverageSourceDirs)
executionData = files("$buildDir/jacoco/junitPlatformTest.exec")
reports {
xml.enabled = true
html.enabled = true
csv.enabled = true
}
}
test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/junitPlatformTest.exec")
includeNoLocationClasses = true
}
}
test.dependsOn junitPlatformTest
При такой конфигурации Jacoco генерирует html-отчет и помещает его в build/reports/test/html
.Тем не менее, это показывает мне 0% покрытия.Этого не должно быть, потому что у меня есть один контрольный пример, который выполняет все методы для одного фиктивного класса в проекте.
Я просмотрел несколько постов, таких как:
Однако я пока не смог найти решение, которое сработало для меня, но пока,