2014-05-26 3 views

답변

0

하나의 프로젝트에서 두 가지 테스트를 실행하고 있습니다.

apply plugin: 'android' 
apply plugin: 'android-test' 


android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
     minSdkVersion 19 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 

    // tell Android studio that the instrumentTest source set is located in the unit test source set 
    sourceSets { 
     androidTest { 
      setRoot('src/test') 
     } 
    } 

    packagingOptions { 
     exclude 'LICENSE.txt' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE' 
    } 
    lintOptions{ 
     abortOnError false 
    } 
} 

androidTest { 
    include '**/*Test.class' 
    exclude '**/espresso/*/*.class' 
} 

dependencies { 
    compile 'com.android.support:support-v4:19.+' 
    compile fileTree(dir: 'lib', include: ['*.jar']) 

    // Espresso 
    androidTestCompile files('lib/espresso-1.1.jar', 'lib/testrunner-1.1.jar', 'lib/testrunner-runtime-1.1.jar') 
    androidTestCompile 'com.google.guava:guava:14.0.1', 
      'com.squareup.dagger:dagger:1.1.0', 
      'org.hamcrest:hamcrest-integration:1.1', 
      'org.hamcrest:hamcrest-core:1.1', 
      'org.hamcrest:hamcrest-library:1.1' 

    androidTestCompile('junit:junit:4.11') { 
     exclude module: 'hamcrest-core' 
    } 
    androidTestCompile('org.robolectric:robolectric:2.3-SNAPSHOT') { 
     exclude module: 'classworlds' 
     exclude module: 'maven-artifact' 
     exclude module: 'maven-artifact-manager' 
     exclude module: 'maven-error-diagnostics' 
     exclude module: 'maven-model' 
     exclude module: 'maven-plugin-registry' 
     exclude module: 'maven-profile' 
     exclude module: 'maven-project' 
     exclude module: 'maven-settings' 
     exclude module: 'nekohtml' 
     exclude module: 'plexus-container-default' 
     exclude module: 'plexus-interpolation' 
     exclude module: 'plexus-utils' 
     exclude module: 'wagon-file' 
     exclude module: 'wagon-http-lightweight' 
     exclude module: 'wagon-http-shared' 
     exclude module: 'wagon-provider-api' 
    } 
    androidTestCompile 'com.squareup:fest-android:1.0.+' 

} 

apply plugin: 'idea' 

idea { 
    module { 
     testOutputDir = file('build/test-classes/debug') 
    } 
} 
1

가이 설정을 달성하기 위해 서로 다른 접근 방식이 있습니다

gradle connectedCheck

이 내 build.gradle 파일입니다으로 에스프레소 테스트를 실행 gradle test

으로 Robolectrics 테스트를 실행합니다. 가장 인기있는 것은 robolectric 친구들이보고합니다. 그러나 나는 의존성 오염 때문에 그들의 해결책을 싫어한다. 자세한 내용은 다음 게시물을 참조하십시오. Android project with Robolectric and Gradle (Android studio)

관련 문제