Estadísticas de cobertura usando Django Coverage
Juan Pablo Romero
Software EngineerEn esta ocasión quiero compartir con ustedes una sencilla pero útil aplicación que nos permitirá conocer las estadísticas relacionadas con la cobertura de nuestros test en las aplicaciones que estemos desarrollando, la aplicación en cuestión es django-coverage. Esta aplicación es interesante puesto que actualmente Django es capaz de ejecutar los tests.py localmente pero no entrega estadísticas de cobertura, sin embargo esta aplicación además de ejecutar los tests es capaz de entregar un reporte resumido pero completo de la cobertura de nuestros tests.
La tabla de contenido para esta ocasión esta repartida de la siguiente manera:
- Instalación y configuración de Django Coverage.
- Ejecución de los tests y análisis de las estadísticas de cobertura.
- Configuraciones extras de Django Coverage
1. Instalación y configuración de Django Coverage.
Instalamos la aplicación utilizando pip.
https://gist.github.com/297fe1... Una vez instalada colocamos el siguiente valor dentro de las aplicaciones instaladas en settings.py
Estos" class="redactor-autoparser-object">https://gist.github.com/ee11f0... sencillos pasos nos permiten tener disponible el comando test_coverage, el cual nos permitirá ejecutar los tests y obtener el resultado de las estadísticas.
2. Ejecución de los tests y análisis de las estadísticas de cobertura.
A continuación se ejecuta uno de los tests de la aplicación cart, en este caso se usará: CartSaleTestCase. Esto se realiza utilizando la siguiente setencia:
https://gist.github.com/a0a8ca... El resultado de esa sentencia es el siguiente:
El resultado de los tests se divide en cuatro columnas:
- Name: Indica el nombre de la aplicación y el fichero especifico que se esta "testeando".
- Cover: Expresa en porcentaje la cobertura de los tests sobre cada uno de los ficheros.
- Missing: Indica las lineas que no están cubiertas por los tests, la nomenclatura es la siguiente: numero_lineal_inicial - numero_de_linea_final
En la parte inferior de estas columnas aparece el total de cada una y debajo de estos se indica que ficheros fueron excluidos del test.
3. Configuraciones extras de Django Coverage
Gracias a los valores definidos en el archivo settings.py de django_coverage podremos modificar el comportamiento de la misma, a continuación se presentan algunas constantes que pueden ser sobreescritas:
- COVERAGE_CODE_EXCLUDES: Indicarle a la aplicación que ficheros serán excluidos de los tests.
- TEST_RUNNER: Usar ./manage.py test, en vez de ./manage.py test_coverage.
- COVERAGE_REPORT_HTML_OUTPUT_DIR: Indicarle donde quiere que exporte los reportes en formato HTML.
Existen muchas opciones las cuales pueden ser examinadas desde el fichero settings.py de la aplicación.
Eso es todo por hoy, espero hayan disfrutado de esta entrada.
Nos vemos en una próxima EntryAxicore :D.
Written by Juan Pablo Romero
Juan Pablo designs and builds robust software solutions with a focus on performance and usability. His problem-solving skills and attention to detail ensure high-quality and efficient applications.