在运行Gradle的Jacoco插件时,我在选定的一组类上报告了零代码覆盖率.我已经确认所有测试这些类的单元测试都已成功运行.
非常有趣的是,Eclipse中的EclEmma生成了正确的代码覆盖率结果.我已经确认这两个工具都使用相同版本的Jacoco.
我想弄清楚这两个工具之间有什么区别?我是否需要Gradle Jacoco插件的附加配置.
编辑:我的Gradle Jacoco输出显示“类com / ….的执行数据不匹配”
更新:我在Eclipse中打开了Jacoco生成的test.exec文件.它显示了缺少覆盖率的类,其中80%的探测已执行.
解决方法:
这可能意味着jacoco插件未在gradle中正确配置.
在这里,您可以找到Jacoco和gradle的常见错误清单(感谢Taeho Kim的明确答案):https://stackoverflow.com/a/23965581/2166900
此外,这是我在上一个Android项目中使用的配置,这对我有用:
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.2.+"
}
def coverageSourceDirs = [
'src/main/java'
]
task jacocoTestReport(type:JacocoReport, dependsOn: "testDebug") {
group = "Reporting"
description = "Generate Jacoco coverage reports"
classDirectories = fileTree(
dir: 'build/intermediates/classes/debug',
excludes: ['**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/BuildConfig.*',
'**/Manifest*.*']
)
additionalSourceDirs = files(coverageSourceDirs)
sourceDirectories = files(coverageSourceDirs)
executionData = files('build/jacoco/testDebug.exec')
reports {
xml.enabled = false
html.enabled = true
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。