Voglio eseguire test che hanno la parola "integrazione" nel percorso da escludere con l'esecuzione di test predefinita, ma voglio eseguirli tutti insieme in un'attività separata. Attualmente ho una configurazione di prova di base:Attività di test di integrazione separata su gradle con 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/**'
}
Questo causa un errore durante la sincronizzazione Gradle come:
Warning: project ':ProjectName': Unable to resolve all content root directories
Details: java.lang.NullPointerException: null
ma se tolgo il compito integrationTest non si verifica. Anche con il compito attuale sono in grado di eseguire l'operazione 'integrationTest', ma questo fa sì che un altro errore:
Error:Could not determine the dependencies of task ':ProjectName:integrationTest'.
A base directory must be specified in the task or via a method argument!