2014-10-28 2 views
5

기본 테스트 실행에서 제외시킬 경로에 '통합'단어가있는 테스트를 실행하고 싶지만 별도의 작업으로 모두 함께 실행하고 싶습니다. AS에 Gradle을 동기화하면서android와 별도의 통합 테스트 작업

sourceSets { 
    androidTest.setRoot('src/test') 

    integrationTest.setRoot('src/test') 
} 

... 

androidTestCompile 'junit:junit:4.11' 
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1' 
androidTestCompile files('libs/android-junit-report-1.5.8.jar') 
androidTestCompile 'com.squareup:fest-android:1.0.8' 
androidTestCompile 'org.robolectric:robolectric:2.3' 

integrationTestCompile 'junit:junit:4.11' 
integrationTestCompile 'com.jayway.android.robotium:robotium-solo:5.1' 
integrationTestCompile files('libs/android-junit-report-1.5.8.jar') 
integrationTestCompile 'com.squareup:fest-android:1.0.8' 
integrationTestCompile 'org.robolectric:robolectric:2.3' 

... 

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

task integrationTest(type: Test) { 
    include '**/integration/**' 
} 

이 오류가 발생합니다 : 현재 나는 기본 테스트 구성이

Warning: project ':ProjectName': Unable to resolve all content root directories 
Details: java.lang.NullPointerException: null 

을하지만 난 integrationTest 작업을 제거하는 경우가 발생하지 않습니다. 또한 작업의 현재와 나는 'integrationTest'작업을 실행할 수 있어요 그러나 이것은 또 다른 오류가 발생합니다 :

Error:Could not determine the dependencies of task ':ProjectName:integrationTest'. 
A base directory must be specified in the task or via a method argument! 

답변

1

그것은 완전히 명확하지 않다,하지만이 오류가 귀하의 작업 정의에 testClassesDir을 정의하지 않음으로써 발생합니다. 유사한

task integrationTest(type: Test) { 
    include '**/integration/**' 
    testClassesDir = file('build/intermediates/classes') 
} 

뭔가 자바 플러그인에 대한 Gradle User Guide에 설명되어 있지만, 완전히 안드로이드 플러그인에 번역하지 않습니다. 아직 모든 세부 사항을 다 해결하지는 못했지만,이 대답을 알아낼 때 업데이트 할 예정입니다.

관련 문제