我想运行默认测试运行时排除的路径中具有“集成”字的测试,但我想在单独的任务中将它们一起运行。目前,我有一个基本的测试配置:使用android在gradle上分离集成测试任务
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/**'
}
这将导致一个错误,而在AS的gradle同步:
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!