Reduzca el Espresso
Esto es sobre Espresso. Estoy ejecutando con éxito la prueba de integración en un simulador. Creo que algunas pruebas están fallando porque está funcionando demasiado rápido. ¿Hay alguna forma de disminuir la velocidad de ejecución / reproducción?
- Prueba de UiAutomator 2.0 desde la línea de comandos
- "Window Manager Crash" al enviar la tecla 'Abajo' en el Samsung Galaxy S
- Android Instrumentación Botón HOME
- ActivityMonitor obtiene un resultado pero getLastActivity devuelve null
- Diferencia entre ActivityUnitTestCase y ActivityInstrumentationTestCase2
- Crear carpeta en el contexto Instrumentation
- ¿Conoces alguna herramienta de instrumentación dinámica para Android con soporte para múltiples dispositivos (idealmente en Python o Jython)?
- Android NullPointerException en Instrumentation.execStartActivity
- No se puede resolver la actividad para: Intención cuando se realizan pruebas de instrumentación en las actividades de Android
- Caso de prueba de instrumentación androide - getinstrumentation () return null
- Android Instrumentaion: ¿Cómo puedo volver a una Actividad lanzada anteriormente?
- ¿Cómo enviar eventos clave a un emulador sin cabeza en una prueba de instrumentación?
- ¿Cómo iniciar el proyecto de Instrumentación mediante programación con Android Intent?
Es imposible que una prueba no cause velocidad. Espresso puede sincronizar todas las operaciones de prueba con la aplicación bajo prueba. De forma predeterminada, Espresso espera que los eventos de interfaz de usuario en la cola de mensajes actual procesen y que las AsyncTasks
predeterminadas se completen antes de pasar a la siguiente operación de prueba. Sin embargo, si esto no es suficiente para su aplicación puede decir Espresso cuando estar inactivo y cuando no. Para hacerlo, tiene que:
- Implementar la interfaz IdlingResource .
- Registre uno o más de sus IdlingResource (s) con Espresso llamando a
Espresso.registerIdlingResource
en la configuración de prueba.
¡Si usted necesita más ayuda me pregunta !!
Haha … en realidad espresso funciona sólo así. El problema al que se enfrenta es que los eventos de interfaz de usuario no se pueden completar (por ejemplo, hacer clic en un elemento de lista antes de que la lista se cargue desde una llamada de red). En este caso, donde se están cargando los recursos de otro hilo, puede realizar Thread.sleep (millis) o más eficientemente el método loopMainThreadForAtleast (millis) de UiController para esperar a que something to load
(el evento se complete).
Cuando graba una prueba de Espresso en Android Studio, automáticamente agregará declaraciones de sueño a las pruebas cuando haya interacción de vista para manejar el retraso. Este es el enfoque que se genera junto con los comentarios:
// Added a sleep statement to match the app's execution delay. // The recommended way to handle such scenarios is to use Espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html try { Thread.sleep(700); } catch (InterruptedException e) { e.printStackTrace(); }
Enlace a los documentos
También tuve este problema. Solucioné eliminando la animación de actividades de mi dispositivo desde las opciones de desarrollador.
Si su problema sigue ahí, puede utilizar el sleep
en su prueba para reducir la velocidad.
SystemClock.sleep(1000);
- Cómo calcular la distancia entre dos dispositivos Android con la fuerza de la señal Bluetooth?
- Manejo de errores específicos mediante el envío de otra solicitud de forma transparente en retrofit