自动化Android App的代码覆盖率(Jenkins & Jacoco)

代码覆盖率很重要,对于保证产品质量和减轻QA的工作量方面。

Android工程中有一个gradle task叫connectedDebugAndroidTest,跑这个task会执行AndroidTest的单元测试,同时生成代码覆盖率的文件(.ec文件);在Jenkins系统里安装Jacoco插件,然后在任务里增加一个post build的任务(选jacoco相关的),然后把这个.ec文件配置给这个任务,当然还要有源代码以及class文件的路径,然后就OK了。

遇到的问题

这里的一个坑是jacoco版本兼容问题,0.7.5+的版本不兼容之前的版本,而Android的gradle插件高版本默认反而用的是jacoco低版本的,会造成Jenkins的高版本jacoco插件不识别.ec文件。

解决方法

指定在跑单元测试的时候用高版本的jacoco,具体方法是在整个工程对应的build.gradle文件里加入:

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'org.jacoco:org.jacoco.core:0.7.9'
    }
}

你可能感兴趣的:(自动化Android App的代码覆盖率(Jenkins & Jacoco))