Ejecutar pruebas de instrumentación en una tarea de Gradle | Igor Escodero | Junio de 2021
En la última conferencia de Google I / O, se mostraron muchas tecnologías nuevas y geniales.En mi opinión, la característica más interesante es Plataforma de prueba unificada (Antes nitrógeno), cuyos primeros pasos públicos se mostraron en el evento. A partir de Android Studio Bumblebee, podemos probar funciones experimentales para que nuestras pruebas sean más fiables y escalables, especialmente las pruebas de instrumentos automatizadas.
Nos presentaron a Dispositivos virtuales administrados por Gradle, Una herramienta que le permite ejecutar pruebas de detección utilizando el complemento Gradle de Android. Esta nueva función se encarga de descargar, crear, implementar y cerrar dispositivos virtuales para realizar pruebas con mayor rendimiento y consistencia.
Crea nuestro primer dispositivo virtual
Para empezar, todo lo que tenemos que hacer es especificar la configuración del dispositivo virtual en nuestro archivo build.gradle
expediente.
En el código anterior, estamos creando un Pixel 2 operación del equipo Nivel de API 29 con Servicio de Google Play en un x86 ABI. Podemos mezclar y combinar teléfonos móviles, tabletas, televisores, Wear OS, teléfonos móviles en general y otros dispositivos con cualquier versión de Android.
Para obtener más información sobre qué dispositivos se pueden crear, podemos navegar a Herramientas> AVD Manager> Crear dispositivo virtual … Y verifique todas las opciones de hardware compatibles.
Después de configurar el dispositivo virtual, podemos ejecutar comandos para ejecutar pruebas automatizadas.Primero habilitamos el experimento Plataforma de prueba unificada Función y consulte nuestro device-name
+BuildVariant
+ AndroidTest
tarea. Los comandos generales son:
./gradlew
-Pandroid.experimental.androidTest.useUnifiedTestPlatform=true
device-nameBuildVariantAndroidTest
Actualiza nuestro pedido build.gradle
Creado antes para ejecutar la prueba en Debug, se verá así:
./gradlew
-Pandroid.experimental.androidTest.useUnifiedTestPlatform=true
pixel2api29DebugAndroidTest
Crea un grupo de dispositivos
También podemos crear un conjunto de dispositivos con diferentes configuraciones para validar nuestras pruebas en múltiples escenarios.Todo lo que tenemos que hacer es agregar un nuevo deviceGroups
Parámetros, nombrar y vincular el dispositivo creado en él. Veamos el siguiente ejemplo:
Ahora, en nuestro ejemplo, tenemos una nueva tableta (Nexus 9) y un nuevo grupo de dispositivos llamado phoneAndTablet
Fue creado. En este nuevo grupo, vincularemos los dos dispositivos creados para que se ejecuten juntos.Para ejecutar nuestra prueba en el grupo de dispositivos, usamos device-group
+ Group
en lugar de.
./gradlew
-Pandroid.experimental.androidTest.useUnifiedTestPlatform=true
phoneAndTabletGroupDebugAndroidTest
Cual es el siguiente paso?
Creé un repositorio para facilitar la prueba de esta nueva característica asombrosa. Todo lo que tienes que hacer es usar Android Studio Bumblebee para clonar, compilar y ejecutar cualquiera de los comandos de este artículo para probarlo. 🎉
en conclusión
He trabajado en varios proyectos, creamos pruebas de instrumentación, pero debido a algunas limitaciones técnicas y dificultad para integrar Android Emulator con ciertos servicios de integración continua, no se ejecutaron en el pipeline.Ahora usa Dispositivos virtuales administrados por Gradle, La ejecución es tan simple como agregar una nueva tarea para ejecutar en su compilación.
Estoy muy emocionado de cómo la plataforma de prueba unificada nos ayudará a crear mejores pruebas y entornos para validar nuestras aplicaciones en diferentes factores de forma y API. Todos estos tienen parámetros simples en nuestro archivo Gradle.
Si encuentra algún problema con la nueva herramienta de experimentación, no dude en abrir un problema en el rastreador de problemas. Ayudará a Google a rastrear y corregir errores, y ayudará a la comunidad a crear mejores soluciones. 😊
Recursos externos
Para obtener más información sobre las funciones de Android Studio Bumblebee y cómo la plataforma de prueba unificada puede ayudarlo a lograr una mayor confiabilidad y escalabilidad, le recomiendo los siguientes enlaces: