Использование Espresso 2.0 + Roboelectric в Android-проекте

У меня уже есть куча теста Roboelectric. Я хочу добавить Espresso 2.0, который был недавно представлен.

Roboelectric представил проект шаблона градир-град, чтобы решить проблему использования Roboelectric и Espresso вместе. Но решение для Espresso 1.1, которое сейчас устарело.

Это часть моего файла build.gradle, чтобы использовать Espresso 2.0, в то время как у меня есть Roboelectric, а также инструкция Espresso 2.0 :

buildscript { repositories { mavenCentral() maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'org.robolectric:robolectric-gradle-plugin:0.13.2' } } apply plugin: 'com.android.application' apply plugin: 'robolectric' android { packagingOptions { exclude 'LICENSE.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE' } compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { versionCode 1 versionName '1.0' minSdkVersion 9 targetSdkVersion 21 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } } robolectric { include '**/*Test.class' exclude '**/espresso/**/*.class' } dependencies { androidTestCompile 'com.android.support.test:testing-support-lib:0.1' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0' androidTestCompile('junit:junit:4.11') { exclude module: 'hamcrest-core' } androidTestCompile('org.robolectric:robolectric:2.4') { exclude module: 'classworlds' exclude module: 'commons-logging' exclude module: 'httpclient' exclude module: 'maven-artifact' exclude module: 'maven-artifact-manager' exclude module: 'maven-error-diagnostics' exclude module: 'maven-model' exclude module: 'maven-project' exclude module: 'maven-settings' 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-provider-api' exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.android.support', module: 'support-v4' } } 

Но я не могу запускать тест Roboelectric и Espresso индивидуально. Я ценю любое предложение.

Дополнения:

 to run roboelectric test : gradlew test to run espresso: gradlew connectedAndroidTest 

Попробуйте этот проект для запуска Android: https://github.com/freezy/android-seed

Он имеет множество функций :

  • Легко загружается в Android Studio
  • Robolectric тесты работают и отлаживаются в среде IDE (для модульного тестирования)
  • Espresso проверяет работоспособность и отладку в среде IDE (для функционального тестирования)
  • Последние версии Lollipop compat libs готовы к использованию
  • Включено тестовое покрытие

Я исключил тесты, чтобы выполнить то, что вы хотите.

 sourceSets { androidTest { java { exclude 'com/company/project/**/*Test.java' } } } 

а также

 gradle.taskGraph.whenReady {taskGraph -> def testRunTask = project.tasks.getByName 'testDebug' testRunTask.include(['**/*Test.class']) testRunTask.exclude(['**/espresso/**/*.class','**/integration/**/*.class']) }