Eri*_*ric 6 java code-coverage gradle jacoco eclemma
在运行 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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5086 次 |
| 最近记录: |