Отдельная задача теста интеграции на градиенте с помощью 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/**' } 

Это вызывает ошибку при синхронизации градиента в AS:

 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! 

Это не совсем очевидно, но эта ошибка вызвана не определением testClassesDir в определении вашей задачи.

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

Нечто похожее описано в Руководстве пользователя Gradle для плагина Java, но оно не полностью переводится в плагин Android. Я еще не разработал все детали, но я уточню этот ответ, когда узнаю об этом.