我想做一些简单的单元测试及其覆盖率报告:实际上,一切正常,但是代码覆盖率任务总是响应说覆盖率为0%
实际上我正在使用Gradle 5.6;哈科科0.8.4
我尝试验证测试范围是否未读取.exec文件,但确实如此。 我排除了所有bean,因为它们使用了lombok表示法,以避免合成代码和覆盖问题(无论问题仍然存在)
/*Especificación de cobertura de código para test unitarios
-Qué clases incluir y excluir en la cobertura
-De las clases incluidas
--Mínimo de % de cobertura ok
Además agregamos rutina de jacocoTestReport en tarea de tests
*/
jacocoTestReport {
getClassDirectories().setFrom(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['example/config/*',
'example/dto/*',
'example/model/configuration/*'])
})
getSourceDirectories().setFrom(sourceSets.main.java.srcDirs)
getExecutionData().setFrom(
fileTree(dir: "${buildDir}/jacoco", include:["**/*.exec"]))
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
}
jacocoTestCoverageVerification {
getClassDirectories().setFrom(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['example/config/*',
'example/dto/*',
'example/model/configuration/*'])
})
getSourceDirectories().setFrom(sourceSets.main.java.srcDirs)
getExecutionData().setFrom(
fileTree(dir: "${buildDir}/jacoco", include:["**/*.exec"]))
violationRules {
rule {
enabled = true
limit {
counter = 'INSTRUCTION'
value = 'COVEREDRATIO'
//minimum = 0.05
/*Los test actuales cubren el 6% del código
Este requisito debería fallar*/
minimum = 0.1
}
}
}
}
实际上,我想重现行为以使覆盖率测试失败,因为htmlReport中的JacocoTestReport显示指令覆盖率总计为6%,但控制台消息始终显示该值为零
“ [ant:jacocoReport]捆绑包示例-ms的规则违反:指令覆盖率是0.0,但预期最小值是0.1
失败:构建失败,并出现异常。
bundle example-ms违反规则:指令覆盖率是0.0,但预期最小值是0.1“
我在测试任务中添加了JacocoTestReport(使用finalize)...工作正常 之后,如果我执行gradle jacocoTestCoverageVerification,它总是显示上述消息