Cobertura de prueba: la aplicación no responde

Contenidos

Foto de Fabe Collage en Unsplash

Introducción

cobertura de prueba es una métrica de código que nos da algunos conocimiento útil sobre un proyecto específico. Dependiendo del nivel de cobertura, nuestra confianza en un conjunto de fuentes puede aumentar o disminuir. Sin embargo, nuestro código nunca estará libre de errores, incluso con un alto grado de cobertura. Sin embargo, la cobertura es un punto importante a considerar cuando se diseña una estrategia de pruebapor ejemplo.

configuración del proyecto

dependencias

Flutter framework viene con algunas características útiles Herramienta cuando importa pruebas. Para habilitar las pruebas en nuestro proyecto, solo necesitamos la siguiente biblioteca: dev_dependencies:flutter_test:sdk:flutter

Pruebas en curso

En cuanto tenemos configurado el proyecto queda pendiente de pruebas empezado ejecutando: Flutter test El comando anterior ejecuta todos los archivos de prueba que terminan en «/Prueba«Directorio. Una vez que está listo, obtenemos un resumen de pruebas exitosas/fallidas:

Resumen de la prueba de aleteo El comando de prueba tiene varios opcionespero en este caso nos centramos en aquellos cubrir la propiedad: prueba plana –cobertura Esta opción básicamente realiza un seguimiento de las líneas de código ejecutadas (también conocido como «cubierto») cuando ejecuta nuestras pruebas. Por cierto, aquí se puede encontrar una referencia de comando completa para el comando. Cuando ejecuta nuestras pruebas con la opción de cobertura, el resultado resultante es un «lcov.info» archivo. El problema aquí es que este formato almacena datos cifrados y, por lo tanto, no es muy fácil de usar…

formato lcov

Introducción

Lcov es un herramienta gráfica que recopila datos sin procesar sobre las pruebas (generados en el paso anterior) y los convierte en una serie de páginas HTML estructuradas con información de cobertura. También incluye una práctica interfaz de línea de comandos.

instalación

Para instalar LCOV (en Mac), abra uno nuevo línea de comando y ejecute: brew install lcov ¡Eso es todo! Se pueden encontrar más detalles en la página de inicio de lcov.

ejecución

Después de instalar lcov, podemos ejecutar un nuevo conjunto de comandos relacionados con cobertura de pruebacomo el comando generar html: genhtml-O ¿De dónde obtenemos el archivo fuente «*.info»…? Bueno, lo pusimos en marcha de inmediato cuando invocamos el comando de prueba Flutter con la propiedad Cobertura. Debajo del capó, al invocar Fluttertest con la opción de cobertura, simplemente llamamos al comando geninfo de la biblioteca lcov.

Omitir componentes al enmascarar

Lcov también nos permite «ignorar» archivos específicos o directorios completos si realiza un seguimiento de la cobertura en nuestro proyecto. Al generar los datos sin procesar, los archivos o directorios ignorados no se tienen en cuenta. Esto es útil, por ejemplo, cuando almacenamos las clases generadas automáticamente de nuestro proyecto en una carpeta específica. Por ejemplo, también podemos ignorar un diccionario simple que contiene solo enumeraciones y constantes (no hay lógica para probar allí). Con el fin de personalizar directorios queremos cubrir, llame a: lcov –remove -O Si ignoramos algunos elementos, podemos usar esos * Marcador de posición para crear expresiones regulares. Por ejemplo, podemos ignorar los archivos generados automáticamente con el siguiente patrón: *.g.dart

Secuencias de comandos para la automatización

Podemos usar algunos herramienta de automatización como make para agrupar todos los comandos anteriores en un tarea útil: prueba de aleteo –coverage lcov –coverage/lcov.info remove «***/constants*/**» «**/*.g.dart» -ocoverage/lcov_cleaned.info genhtml cover/lcov_cleaned.info – o portada/html abrir portada/html/index.html

complementos

Además, existen varios plugins que nos permiten hacer esto Integre la opción de cobertura de prueba directamente en nuestro IDE. Por ejemplo: https://marketplace.visualstudio.com/items?itemName=Flutterando.flutter-coverage El complemento agrega uno nuevo pizarra en nuestro espacio de trabajo se puede utilizar para comprobar los datos de cobertura, ya sea agrupados (por paquete) o individualmente (por archivo). Algunos otros complementos van más allá e integran el Datos de cobertura en el editor de textopara que cada línea de código se resalte en un color diferente dependiendo de si está oculta o no.

ejemplo de código

Como de costumbre, compruebe lo siguiente repositorio para el código fuente completo: https://github.com/begomez/Flutter-Arch-Template

referencias

https://pub.dev/packages/test_coverage

Como esto:

Me gusta Cargando…

Relacionado

Deja una respuesta

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