Automatización de pruebas (II): la aplicación no responde

Contenidos
Foto de Minku Kang en Unsplash
Introducción
En el artículo anterior definimos un Flujo de trabajo para automatizar nuestro conjunto de pruebas con Firebase y Codemagic.
En este artículo los revisaremos configuración nativa necesario para el proyecto de Android subyacente.
La próxima vez comprobaremos el CI/CD tubería Configuración y los resultados después de ejecutar las pruebas de integración. ¡Entonces empecemos!
Breve resumen
flujo de trabajo de automatización
Crear un proyecto de FirebaseConfigure el proyecto agregando un servicio de cuentaHabilitar resultado de herramientas en la nube- Actualizar el proyecto de Android nativo subyacente
- Configurar el ejecutor de pruebas de Android nativo subyacente
- Configurar la canalización de Codemagic
Como se mencionó, ya hemos revisado los primeros 3 puntos, así que pasemos al punto 4.
4. Actualizar el proyecto nativo de Android
Configuración requerida en el carpeta «Android» bajo nuestro proyecto Flutter es fácil. Solo se requieren 2 cambios:
- Actualizar el Gradl ejecución
- añade el Servicios de Google dependencia
Actualización de Gradle
Gradl es el mecanismo de compilación subyacente utilizado en Android. Cuando se trata de crear y ejecutar una aplicación de Android, Gradle hace todo el trabajo por nosotros.
Gradle se divide en 2 formatos:
- ese herramienta de compilación principal sí mismo (también conocido como «gradle»)
- ese guion auxiliar Se usa cuando Gradle no está disponible (también conocido como «envoltorio»)
Pueden aparecer algunos errores al usar versiones anteriores de Gradle, por lo que debemos actualizarlos cambiándolos siguiente articulo:
- expediente»Android/construir.gradle“ (externo, a nivel de proyecto)
- expediente»androide/gradle/wrapper/gradle-wrapper.propiedades«
Para ambos archivos solo tenemos que configurar al menos la versión que se muestra en las capturas de pantalla.
Agregar dependencia en los servicios de Google
Dado que Gradle es el mecanismo de compilación nativo para Android, también se ocupa de eso. Bibliotecas de terceros y dependencias utilizadas en nuestro proyecto.
Para que nuestras pruebas se ejecuten automáticamente, necesitamos la siguiente dependencia en nuestro proyecto nativo de Android:
Classpath «com.google.gms:google-services:4.2.0»
Después de eso, abra una terminal, cambie de su directorio actual a la carpeta de Android, luego ejecute:
./gradlew construir
forzar una conversión.
5. Configure el ejecutor de pruebas nativo de Android
Debajo del capó, nuestras pruebas de integración de Flutter se ejecutan en el plataformas de prueba subyacentes. Entonces, en Android, nuestras pruebas de integración de Flutter se convierten en pruebas de instrumentación de Android. En iOS, estas serían pruebas XCUI y también requerirían alguna configuración.
2 cambios también se requieren aquí para que nuestras pruebas funcionen en Android:
- Configurar el Grado expediente
- agregando uno actividad principal archivo para la prueba
Configuración de Gradle
Las pruebas de instrumentación de Android se ejecutan en un entorno separado y usan un objeto especial llamado instrumentaciónque otorga acceso al contexto de la aplicación y permite realizar acciones en la aplicación bajo prueba.
El proyecto de Android predeterminado que se envía en un proyecto de Flutter no incluye la configuración de instrumentación de Android, por lo que debemos cambiar lo siguiente:
expediente»android/aplicación/construir.gradle» (interno, a nivel de módulo)
configurando manualmente el instrumentación de prueba Propiedad en el bloque defaultConfig:
y también agregar lo siguiente bibliotecas en el cual Bloquear dependencias:
Adición de una actividad principal de prueba
Las pruebas de instrumentación requieren un punto de entrada principalcomo cualquier otra tarea automática.
Para implementarlo, primero vamos a crear lo siguiente jerarquía de directorios:
/android/app/src/androidTest
Después de eso tenemos que Responde a la estructura del paquete. creado en el subconjunto «principal». Para este proyecto sería:
java.com.ejemplo.fooderlich
Entonces, si sumamos ambos, obtenemos algo como:
/android/app/src/androidTest/java/com/ejemplo/fooderlich
Finalmente, una vez que hayamos creado la estructura de carpetas, necesitamos añadir una actividad de prueba principal Archivo. El código contenido en este archivo es el mismo para cada proyecto, por lo que se presenta como un modelo: Lo único que necesitamos cambiar es el paquete del proyecto como se muestra en la siguiente captura de pantalla:
resumen
Como puede ver, la configuración subyacente para nuestra automatización de pruebas es bastante simple. En el artículo final de esta serie, revisaremos la configuración de Codemagic para que podamos completar todo el flujo de trabajo.
proyecto de muestra
Mira lo siguiente repositorio contiene el proyecto completo:
https://github.com/begomez/Flutter-Prueba-Automatización
¡Escríbeme la próxima vez!