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'
}
source
share