Gradle、Kotlin、Junit5和Jacoco-报告覆盖率为0%
我们希望将Gradle与Kotlin和Jacoco(+JUnit 5)结合使用,以生成代码覆盖率报告 我们的项目目录树如下所示:Gradle、Kotlin、Junit5和Jacoco-报告覆盖率为0%,gradle,kotlin,jacoco,junit5,Gradle,Kotlin,Jacoco,Junit5,我们希望将Gradle与Kotlin和Jacoco(+JUnit 5)结合使用,以生成代码覆盖率报告 我们的项目目录树如下所示: jacoco { toolVersion = "0.7.9" reportsDir = file("$buildDir/reports") applyTo junitPlatformTest } jacocoTestReport { group = "Reporting" description = "Generate Jaco
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
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%的覆盖率。情况不应该是这样,因为我有一个测试用例,它为项目中的一个虚拟类执行所有方法
我浏览了几个帖子,比如:
然而,我还没有找到一个适合我的解决方案 这很奇怪。。。将JUnit测试从TestXY重命名为XYTest后,它似乎可以工作。我一定错过了一些关于命名约定的限制。junit platform gradle插件使用标准的包含模式,除非明确配置:非常感谢!我错过了文档中的这一点。这个链接帮助了我:Marcin Stachniuk提到的URL现在是