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
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
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…