【发布时间】:2015-05-11 01:39:33
【问题描述】:
自从'com.android.tools.build:gradle:1.1.0' 发布以来,我将大部分java 测试代码从androidTest 移动到test 文件夹,因为JVM 测试要快得多。但我无法移动所有测试。由于一些ContentProvider 的东西,我真的需要设备测试。
在开始迁移之前,我的代码覆盖率已达到 100%。当我当前运行 jacoco 代码覆盖率时,androidTest 文件夹的覆盖率为 40%,test 文件夹的覆盖率为 71%。我的代码已经过 100% 测试,但我没有报告证明这一点。
有没有办法合并两个报告?我找到了JacocoMerge,但无法使用。
这是androidTest 文件夹的输出:build/outputs/reports/coverage/debug/index.html
这里是test 文件夹的输出
build/reports/jacoco/generateJacocoTestReports/html/index.html
使用此 gradle 任务生成:
def coverageSourceDirs = [
'../library/src/main/java'
]
task generateJacocoTestReports(type: JacocoReport, dependsOn: "test") {
group = "Reporting"
description = 'Generate Jacoco Robolectric unit test coverage reports'
classDirectories = fileTree(
dir: '../library/build/intermediates/classes/debug',
excludes: ['**//*R.class',
'**//*R$*.class',
'***/*//*$ViewInjector*.*',
'**//*BuildConfig.*',
'**//*Manifest*.*']
)
sourceDirectories = files(coverageSourceDirs)
additionalSourceDirs = files(coverageSourceDirs)
executionData = files('../library/build/jacoco/testDebug.exec')
}
【问题讨论】:
-
如果您找到了解决方案,我将不胜感激您提供的任何提示。谢谢。
标签: android unit-testing gradle code-coverage jacoco