Android Espresso: el filtrado de prueba no es compatible con la versión dada de JUnit. Actualice la versión de JUnit por lo menos a 4.6

Tengo mucho miedo de publicar esto, pero no he encontrado nada relacionado con él en google, así que supongo que es una pregunta noob.

Quiero usar Espresso para probar mis aplicaciones Android.

He intentado descargar el proyecto de ejemplo, crear un proyecto sencillo e implementarlo como se describe en el sitio de desarrolladores de android, pero no puedo hacerlo funcionar.

  • Tengo herramientas de construcción 22.0.1
  • Biblioteca de soporte 22

Después de agregar manualmente las importaciones estáticas, he resuelto todo el problema de compilación con mi prueba de ejemplo. Pero cuando lo ejecuto, consigo esto:

:app:cleanTest UP-TO-DATE :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE :app:mergeDebugResources UP-TO-DATE :app:processDebugManifest UP-TO-DATE :app:processDebugResources UP-TO-DATE :app:generateDebugSources UP-TO-DATE :app:compileDebugJava UP-TO-DATE :app:preCompileDebugUnitTestJava :app:compileDebugUnitTestJava UP-TO-DATE :app:compileDebugUnitTestSources UP-TO-DATE :app:mockableAndroidJar UP-TO-DATE :app:assembleDebugUnitTest UP-TO-DATE :app:testDebug :app:testDebug FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:testDebug'. > Test filtering is not supported for given version of JUnit. Please upgrade JUnit version to at least 4.6. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 32.847 secs Test filtering is not supported for given version of JUnit. Please upgrade JUnit version to at least 4.6. 

Esta es mi clase de prueba:

 package com.example.federicoponzi.testingexample; import org.junit.runner.RunWith; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription; import android.app.Activity; import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4; import android.test.ActivityInstrumentationTestCase2; import android.test.suitebuilder.annotation.LargeTest; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard; import static android.support.test.espresso.action.ViewActions.typeText; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import android.support.test.espresso.action.ViewActions; import android.support.test.espresso.matcher.ViewMatchers; /** * Created by FedericoPonzi on 10/04/2015. */ import org.junit.Test; @RunWith(AndroidJUnit4.class) //copied from a google example @LargeTest public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { public MainActivityTest(){ super(MainActivity.class); } Activity mActivity; @Override protected void setUp() throws Exception { super.setUp(); mActivity = getActivity(); injectInstrumentation(InstrumentationRegistry.getInstrumentation()); } private final String STRING_TO_TYPE = "Hello, Testing"; @Test public void testChangeText_sameActivity() { onView(withId(R.id.edittextview)).perform(typeText(STRING_TO_TYPE), closeSoftKeyboard()); onView(withId(R.id.edittextview)).check(matches(withText(STRING_TO_TYPE))); } } 

Build.gradle:

 apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example.federicoponzi.testingexample" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.0.0' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0' androidTestCompile 'com.android.support.test:testing-support-lib:0.1' } 

Editar: Nuevo error después de la actualización gradle:

 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:testDebug'. > No tests found for given includes: [com.example.federicoponzi.testingexample.MainActivityTest] * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 7.246 secs No tests found for given includes: [com.example.federicoponzi.testingexample.MainActivityTest] 

Importante saber:

androidTestCompile – carpeta de androidTest – pruebas de ui

testCompile – carpeta de pruebaprueba de unidad

Para la prueba de Unit :

Añadir:

 testCompile 'junit:junit:4.12' 

A:

 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.0.0' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0' androidTestCompile 'com.android.support.test:testing-support-lib:0.1' testCompile 'junit:junit:4.12' // <-- added } 

Para su Prueba Espresso :

Quite Junit y Anotaciones.

 public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { public MainActivityTest(){ super(MainActivity.class); } Activity mActivity; @Override protected void setUp() throws Exception { super.setUp(); mActivity = getActivity(); // injectInstrumentation(InstrumentationRegistry.getInstrumentation()); // not sure what this is } private final String STRING_TO_TYPE = "Hello, Testing"; public void testChangeText_sameActivity() { onView(withId(R.id.edittextview)).perform(typeText(STRING_TO_TYPE), closeSoftKeyboard()); onView(withId(R.id.edittextview)).check(matches(withText(STRING_TO_TYPE))); } } 

Ejemplos:

https://github.com/googlesamples/android-testing/blob/master/espresso/BasicSample/app/src/androidTest/java/com/example/android/testing/espresso/BasicSample/ChangeTextBehaviorTest.java https: // github .com / jaredsburrows / AndroidGradleTemplate

Documentación oficial: https://developer.android.com/tools/testing-support-library/index.html y https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide

  • Registrar mensajes en android studio junit test
  • Cómo generar informes de prueba de JUnit en android para jenkins
  • ¿Cómo simular un clic de usuario a un elemento de vista de lista en junit testing?
  • org.openqa.selenium.WebDriverException: No se puede crear el directorio temporal: / sd card / 1339054625829.
  • Robotium: ¿Cómo espero que termine la carga antes de continuar?
  • Prueba Android AsyncTask con Android Test Framework
  • Prueba de unidad Actividad.startService () llamada?
  • La compatibilidad con la prueba de unidades Android no funciona en los módulos de la biblioteca de Android
  • ¿Por qué fallan las grandes pruebas de unidad de actividad de Android?
  • Cómo probar afirma que lanza excepción en Android
  • ¿Existe alguna manera de usar junit.extensions.TestSetup para pruebas en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.