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

  1. Crear un proyecto de Firebase
  2. Configure el proyecto agregando un servicio de cuenta
  3. Habilitar resultado de herramientas en la nube
  4. Actualizar el proyecto de Android nativo subyacente
  5. Configurar el ejecutor de pruebas de Android nativo subyacente
  6. 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)
Archivo de configuración principal de Gradle
  • expediente»androide/gradle/wrapper/gradle-wrapper.propiedades«
Archivo de configuración del script auxiliar de Gradle

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:

Configuración predeterminada en build.gradle

y también agregar lo siguiente bibliotecas en el cual Bloquear dependencias:

Prueba las dependencias de build.gradle

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:

Ejemplo de archivo de prueba de actividad principal

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!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.