Google Espresso java.lang.RuntimeException: No se pudo iniciar intención Intent {act = android.intent.action.MAIN

Soy nuevo en las pruebas de Espresso UI.

Estoy recibiendo este error al ejecutar pruebas (ADT Eclipse IDE).

La aplicación ya está desarrollada y hay un montón de solicitud en curso al iniciar la aplicación. No es posible volver a escribir la aplicación. Pero tengo que encontrar la manera de probar esta interfaz de usuario, incluso si hay algún retraso en la carga de los componentes.

java.lang.RuntimeException: Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.xx.android/com.yy.core.android.map.MapActivity } within 45 seconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1390913271702 and and now the last time the queue went idle was: 1390913271767. If these numbers are the same your activity might be hogging the event queue. at com.google.android.apps.common.testing.testrunner.GoogleInstrumentation.startActivitySync(GoogleInstrumentation.java:277) at android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:119) at android.test.InstrumentationTestCase.launchActivity(InstrumentationTestCase.java:97) at android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:104) at com.gulesider.android.test.UItest.setUp(UItest.java:25) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner.onStart(GoogleInstrumentationTestRunner.java:167) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1799) 
  1. Tengo un proyecto de biblioteca llamado "Core" – no generará ningún .apk
  2. También tengo un proyecto Android llamado "AA" que tendrá acceso a "Core". – Esto es AA.apk
  3. Ahora he creado un proyecto de prueba llamado "UItest"

Manifiesto:

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.AA.android.test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <instrumentation android:name="com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner" android:targetPackage="com.AA.android"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="com.core.android.map.MapActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <uses-library android:name="android.test.runner" /> </application> </manifest> 

Mi prueba:

  public class UItest extends ActivityInstrumentationTestCase2<MapActivity> { public UItest() { super(MapActivity.class); } @Override public void setUp() throws Exception { super.setUp(); getActivity(); } public void testSearchBox() { Espresso.onView(ViewMatchers.withId(R.id.menu_button_logo)).perform(ViewActions.click()); } } 

Si hay una barra de progreso en ejecución al crear la actividad, obtendrá un error como este. Debe hacer que se detenga la barra de progreso para poder seguir ejecutando la prueba.

Probablemente tiene animación dentro de su actividad, lo que bloquea la ejecución del espresso. Tienes que deshabilitarla: https://code.google.com/p/android-test-kit/wiki/DisablingAnimations

Para Espresso Testing, es muy recomendable desactivar las animaciones del sistema en los dispositivos virtuales o físicos utilizados para las pruebas. Por lo tanto, puede seguir los siguientes pasos para desactivar manualmente las animaciones:

En: Configuración->
Opciones del desarrollador-> Dibujo

  1. Ventana Animaciones escala a OFF
  2. Escala de animación de transición a OFF
  3. Escala de duración del animador a OFF

He experimentado este error al ejecutar pruebas de Espresso en dispositivos 6.0 pero no en dispositivos 5.1.1 o 7.0. Seguí la causa hasta el uso de android: fadeScrollbars dentro de un estilo. La eliminación de este elemento de mi estilo resolvió el problema.

En mi caso una vista personalizada causó este comportamiento. Contenía un Scroller que se desplazaba constantemente. Lamentablemente, no he encontrado una solución para este problema hasta ahora, excepto desactivarlo para las pruebas …

En la primera página usted llamará demasiada petición que tomará tiempo más de 15 segundos, la primera página debe ser muy lightwieght. Simplemente intente crear una nueva página de bienvenida y luego llamar a su página de bienvenida original. Espero que este trabajo para usted.

  • Haga clic en el elemento de menú que se encuentra a veces en el menú de desbordamiento
  • Uso de Espresso para hacer clic en la vista dentro del elemento RecyclerView
  • Cómo probar el gesto de desplazamiento del buscapersonas en Android con Espresso 2.2
  • Prueba de ViewPager con múltiples fragmentos usando espresso android
  • Pruebas de Android: UIAutomator vs Espresso
  • ¿Cómo desplazarse por la pantalla en la prueba de espresso android? Necesito validar el texto presente en la pantalla
  • problema con la importación de android.support.test. *
  • Prueba Espresso NestedScrollView - "Error al ejecutar 'desplazamiento a' en vista 'con id:"
  • Espresso largo haga clic en el menú y el menú emergente
  • Android Espresso testing 'No se puede resolver el símbolo' InstrumentationRegistry ''
  • Mocking resultados de los servidores en Android (Wiremock, MockWebServer etc)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.