Jacoco Android Studio code coverage does not consider androidTest folder

I am trying to activate Jacoco in my Android project, both for unit tests (folder test) and for instrumental tests (folder androidTest). In fact, the tool test is most interesting to me because my test is posted here.

I can successfully execute both types of tests, but when I try to create a coverage report (using the command gradlew createDebugCoverageReport), the instrumental tests were not considered.

In addition, when I right-click on folders, only those tests inside the folder testdisplay the “run with Coverage” parameter, and if I go to “Edit configuration”, only the configurations in JUnit have “Code coverage”, they didn’t see it in Android Tests settings.

This is my build.gradle:

apply plugin: 'com.android.application'
//apply plugin: "jacoco"

android {
compileSdkVersion 23
buildToolsVersion '23.0.2'

dexOptions {
    javaMaxHeapSize "4g"
}

defaultConfig {
    applicationId "com.abc.myapp"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    // Enabling multidex support.
    multiDexEnabled true
//        testInstrumentationRunner 'com.android.test.runner.MultiDexTestRunner'
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testCoverageEnabled false
    }
    debug {
        debuggable true
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testCoverageEnabled true
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

testOptions {
    unitTests.returnDefaultValues = true
}

productFlavors {
}

sourceSets {
    main {
        resources.srcDirs = ['src/main/java']
    }

    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
//        androidTest.setRoot('src/androidTest')
}
packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
    exclude 'NOTICE'
    exclude 'LICENSE.txt'
    exclude 'LICENSE'
    exclude 'asm-license.txt'
}

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-annotations:23.0.1'
    }
}

}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:24.1.1'

androidTestCompile 'com.android.support:support-annotations:24.0.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
// Optional -- Hamcrest library
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
//    // Optional -- UI testing with Espresso
//    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
//    // Optional -- UI testing with UI Automator
//    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'

androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'

androidTestCompile 'junit:junit:4.12'
testCompile 'junit:junit:4.12'
}
+4
source share
1 answer

This link will give you a step-by-step guide on how to get Jacoco Coverage.

0
source

Source: https://habr.com/ru/post/1656709/


All Articles