2015-11-25 4 views
0

У меня возникли проблемы с получением кода в моем проекте. Тесты моего устройства и UI помещаются в папку «androidTest». Тесты выполняются гладко, но когда я пытаюсь получить покрытие кода (как работает с покрытием, так и ./gradlew createDebugCoverageReport из CLI), я получаю разные типы ошибок.Android Studio 1.4 Cover Coverage

Вот мой build.gradle.

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

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 

    buildTypes { 
     debug { 
      testCoverageEnabled = true 
     } 

     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    jacoco { 
     version "0.7.1.201405082137" 
    } 
} 

dependencies { 
    compile 'junit:junit:4.12' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.1' 
    compile 'com.google.code.gson:gson:2.2.4' 
    compile 'com.android.support:design:22.2.1' 
    compile 'com.android.support:recyclerview-v7:22.2.+' 
    compile 'com.android.support:cardview-v7:22.0.+' 
    compile 'com.mcxiaoke.volley:library:1.0.19' 
    compile 'com.github.bmarrdev:android-DecoView-charting:v0.9.3' 
    compile 'com.github.PhilJay:MPAndroidChart:v2.1.5' 
    compile 'com.wefika:horizontal-picker:1.1.0' 
    compile 'info.hoang8f:android-segmented:1.0.6' 
    compile 'com.google.guava:guava:18.0' 

    testCompile 'com.android.support.test:testing-support-lib:0.1' 
    testCompile 'com.android.support:support-annotations:22.0.1' 
    testCompile 'com.android.support.test:runner:0.4.1' 
    testCompile 'com.android.support.test:rules:0.4.1' 
    testCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
    testCompile 'org.hamcrest:hamcrest-library:1.3' 

    androidTestCompile 'com.android.support:support-annotations:22.0.1' 
    androidTestCompile 'com.android.support.test:runner:0.4.1' 
    androidTestCompile 'com.android.support.test:rules:0.4.1' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3' 

    androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.0') { 
     exclude group: 'com.android.support', module: 'appcompat' 
     exclude group: 'com.android.support', module: 'support-v4' 
     exclude module: 'recyclerview-v7' 
    } 
} 

Пожалуйста, дайте мне знать, как установить покрытие кода как для InstrumentationTestCase и ActivityInstrumentationTestCase2 помещается на папку «androidTest».

Спасибо!

ответ

0

Вот как я настраиваю jacoco в файле build.gradle (app). И это нормально работало без каких-либо проблем. И настройка была для модульного теста с использованием JUnit 4.12. Надеемся, что это поможет

jacoco { 
     toolVersion = "0.7.1.201405082137" 
} 

def coverageSourceDirs = { 
     '../app/src' 
} 

task jacocoTestReport(type: org.gradle.testing.jacoco.tasks.JacocoReport, dependsOn: "test"){ 
    group = "Reporting" 
    description = "Generate Jacoco coverage reports" 
    classDirectories = fileTree(
      dir: '../app/build/intermediates/classes', 
      excludes: ['**/R.class', 
        '**/R$.class', 
        '**/*$ViewInjector*.*', 
        '**/BuildConfig.*', 
        '**/Manifest*.*'] 
    ) 
    additionalSourceDirs = files(coverageSourceDirs) 
    sourceDirectories = files(coverageSourceDirs) 
    executionData = files('../app/build/jacoco/testDebugUnitTest.exec') 

    reports { 
     xml.enabled = true 
     html.enabled = true 
    } 
}