在工程下面的build.gradle 增加配置

1.增加Plugin

apply 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\'
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\'

    }
}

  

6. 运行报告

gradlew jacocoTestReport

运行生成报告命令可能出现的问题

1). Could not find com.android.tools.build:gradle:2.2.3

解决方法:

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



版权声明:本文为linlf03原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/linlf03/archive/2004/01/13/8391099.html