2016-10-04 65 views
4

我试图激活我的Android项目上的Jacoco,既适用于单元测试(test文件夹)也适用于仪器测试(androidTest文件夹)。真的,我对仪器测试最感兴趣,因为我的测试放在这里。Jacoco代码覆盖率Android Studio不考虑androidTest文件夹

我可以成功执行这两种类型的测试,但是当我尝试创建覆盖率报告时(使用gradlew createDebugCoverageReport命令),没有考虑仪器测试。

此外,当我右键单击文件夹时,只有test文件夹中的测试显示“运行覆盖率”选项,如果我选择“编辑配置”,只有JUnit下的配置具有“代码覆盖率”标签,在“Android测试”配置中没有看到它。

这是我的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' 
} 

回答

相关问题