Coverage.py: Medición de cobertura de código en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Coverage.py?

Coverage.py es una potente herramienta para analizar la cobertura de código en Python. Permite a los desarrolladores identificar qué partes de su código se ejecutan durante las pruebas y cuáles quedan sin usar. Es un componente esencial en el aseguramiento de la calidad del software, ya que ayuda a detectar posibles puntos ciegos en las pruebas.

El objetivo principal de Coverage.py es brindar información detallada sobre qué tan bien tus pruebas cubren el código escrito. La herramienta analiza la ejecución del programa y genera informes que muestran el porcentaje de cobertura por archivo, módulo e incluso por líneas individuales.

Funcionalidades clave de Coverage.py

Coverage.py ofrece una amplia gama de funciones para el análisis de cobertura:

Medición de cobertura por líneas — función básica que rastrea qué líneas de código se ejecutaron durante las pruebas.

Análisis de ramas — función avanzada que verifica si se ejecutaron todas las rutas posibles en estructuras condicionales (if, elif, else).

Generación de informes — creación de informes detallados en varios formatos: texto, HTML, XML y JSON.

Integración con frameworks — funciona a la perfección con frameworks de pruebas populares como pytest, unittest y nose.

Exclusión personalizada — posibilidad de excluir archivos, carpetas o líneas específicas del análisis de cobertura.

Instalación y configuración inicial

Instalación estándar

Para instalar Coverage.py usa pip:

pip install coverage

Instalación con funcionalidades adicionales

Si trabajas con pytest, se recomienda instalar el plugin pytest-cov:

pip install pytest-cov

Para trabajar con archivos de configuración toml:

pip install coverage[toml]

Verificar la instalación

Después de instalar, asegúrate de que Coverage.py funcione correctamente:

coverage --version

Comandos principales y su uso

Ejecutar análisis de cobertura

Ejecución básica del análisis de cobertura para un script de Python:

coverage run my_script.py

Ejecución con parámetros adicionales:

coverage run --source=my_package my_script.py

Ejecutar con el módulo unittest

coverage run -m unittest discover

Ejecutar con pytest

coverage run -m pytest

O usando pytest-cov:

pytest --cov=my_module tests/

Ver el informe de cobertura

Informe de texto en la terminal

coverage report

Ejemplo de salida:

Name                 Stmts   Miss  Cover
----------------------------------------
my_module.py            25      3    88%
utils.py                15      0   100%
main.py                 20      5    75%
----------------------------------------
TOTAL                   60      8    87%

Informe detallado con líneas faltantes

coverage report --show-missing

Informe HTML

coverage html

Después de ejecutar el comando, abre el archivo htmlcov/index.html en tu navegador para ver el informe interactivo.

Informe XML para CI/CD

coverage xml

Informe JSON

coverage json

Gestión de datos de cobertura

Limpiar datos

                
    
    

Recommendations