Android 单元测试覆盖率计算
2018-01-31 10:47
183 查看
在工程下面的build.gradle 增加配置1.增加Pluginapply plugin: 'jacoco'2. 增加jacoco版本
jacoco{ version "0.7.4.201502262128" }3.申明一个gradle task
//jacocoTestReport依赖于connectedAndroidTest task,所以在执行jacoco之前需要先执行connectedAndroidTest,也就是说需要连接测试机(模拟器or真机) task jacocoTestReport(type:JacocoReport,dependsOn:"connectedAndroidTest"){ group = "Reporting" description = "Generate Jacoco coverage reports after running tests." reports{ xml.enabled = false html.enabled = true csv.enabled = false } classDirectories = fileTree( dir : "$buildDir/intermediates/classes/debug", excludes : [ '**/*Test.class', '**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*' ] ) def coverageSourceDirs = ['src/main/java'] additionalSourceDirs = files(coverageSourceDirs) sourceDirectories = files(coverageSourceDirs) additionalClassDirs = files(coverageSourceDirs) executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec") }4. 打开testCoverageEnabled
buildTypes { debug { testCoverageEnabled = true } }
5. 完整的配置
apply plugin: 'com.android.application'6. 运行报告gradlew jacocoTestReport运行生成报告命令可能出现的问题1). Could not find com.android.tools.build:gradle:2.2.3解决方法:
apply plugin: 'jacoco'android {
compileSdkVersion 25
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "com.example.androidunittest"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testCoverageEnabled = true
}
buildTypes {
debug {
testCoverageEnabled = true
}
}jacoco{ version "0.7.4.201502262128" }}//jacocoTestReport依赖于connectedAndroidTest task,所以在执行jacoco之前需要先执行connectedAndroidTest,也就是说需要连接测试机(模拟器or真机)
task jacocoTestReport(type:JacocoReport,dependsOn:"connectedAndroidTest"){
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
reports{
xml.enabled = false
html.enabled = true
csv.enabled = false
}
classDirectories = fileTree(
dir : "$buildDir/intermediates/classes/debug",
excludes : [
'**/*Test.class',
'**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/Manifest*.*'
]
)
def coverageSourceDirs = ['src/main/java']
additionalSourceDirs = files(coverageSourceDirs)
sourceDirectories = files(coverageSourceDirs)
additionalClassDirs = files(coverageSourceDirs)
executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec")
}dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'}
}
buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' } }2). Unsupported major.minor version 52.0解决方法:参考:http://blog.csdn.net/it_talk/article/details/50267573
相关文章推荐
- android gradle + junit +jacoco +sonarscaner(sonarrunner) 获取单元测试覆盖率以及代码质量
- EMMA对Android工程单元测试覆盖率进行检查.
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
- Android项目持续集成之单元测试及代码覆盖率
- 结合junit + ant + emma实现Android项目单元测试代码覆盖率统计
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
- Android RenderScript 高性能计算
- Android手机分辨率基础知识(DPI,DIP计算)
- MIT开发应用为Android手机增添超级计算能力(转)
- Ant 单元测试及Jacoco覆盖率报告生成并将报告提交sonarqube
- android - 单元测试小结(包括异步)
- Android单元测试研究与实践
- Android单元测试
- Android单元测试框架
- Android计算文件的MD5和SHA1
- Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
- Android计算屏幕宽高
- 蘑菇街支付金融Android单元测试实践