AndroidEmma

项目参考 TestHome 里面手工测试代码覆盖率手工版,只为提供一种方便大家调用的工具,和当前项目无侵入。

参考信息

# 使用方法

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="替换成自己的包名">

    <instrumentation
        android:handleProfiling="true"
        android:label="CoverageInstrumentation"
        android:name="me.shenfan.androidemma.EmmaInstrumentation"
        android:targetPackage="替换成自己的包名"/>

</manifest>

在 app 下面的 build.gradle 中添加

apply plugin: 'jacoco'
jacoco{
    toolVersion = "0.7.1.201405082137"
}

android{
    buildTypes {
        debug {
            testCoverageEnabled = true
        }   
    }
}

dump 覆盖率文件的俩种方式:


private FinishListener finishListener;

@Override
public void setFinishListener(FinishListener listener) {
    finishListener = listener;
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (finishListener != null){
        finishListener.onActivityFinished();
    }
}

EmmaUtil.dump(Context);

更多信息见 demo 项目

开始手工测试

打开桌面图标 EmmaInstrumentation ,点击 open 即可,其实就是执行了

adb shell am instrument 当前应用包名/me.shenfan.androidemma.EmmaInstrumentation

覆盖率结果查看

默认数据保存在 sdcard/Android/当前项目包名/coverage.ec

根据 coverage.ec 生成报告,请看这里

Gradle


allprojects {
    repositories {
        maven { url "https://www.jitpack.io" }
    }
}

dependencies {
    debugCompile  'com.github.yaming116.AndroidEmma:library:1.1.0'
    releaseCompile 'com.github.yaming116.AndroidEmma:androidemma-no-op:1.1.0'
}

项目地址: github


↙↙↙阅读原文可查看相关链接,并与作者交流