Jacoco集成步骤
1. 在gradle中引入jacoco加入以下:
apply plugin: 'jacoco'
....
jacoco{
toolVersion = "0.7.1.201405082137"
}
android {
buildTypes {
debug {
testCoverageEnabled = true
}
2.接下来加入UI测试脚本
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
3.在gradle文件中加入如下脚本,来对生成的.ec文件和编译产生的.class文件进行整合形成代码覆盖率报告。
//这里定义为你想要进行代码覆盖率统计的java目录
defcoverageSourceDirs = [
'../app/src/main/java'
]
taskjacocoTestReport(type: JacocoReport) {
group = "Reporting"
description = "Generate Jacoco coverage reportsafter running tests."
//这里为生成报告的类型
reports {
xml.enabled = true
html.enabled = true
}
//这里为编译后产生的.class文件目录,excludes为你不想进行代码覆盖率统计的文件
classDirectories = fileTree(
dir: './build/intermediates/classes/debug',
excludes: ['**/R*.class',
'**/*$InjectAdapter.class',
'**/*$ModuleAdapter.class',
'**/*$ViewInjector*.class'
])
sourceDirectories = files(coverageSourceDirs)
//代码覆盖率报告的生成文件目录
executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec")
doFirst {
new File("$buildDir/intermediates/classes/").eachFileRecurse{ file ->
if (file.name.contains('$$')) {
file.renameTo(file.path.replace('$$','$'))
}
}
}
}
整合后,完整的gradle文件如下: