Cobertura de Código en Python con Coverage: Instalación y Uso

Clase 17 de 20Curso de Unit Testing en Python

Resumen

En los proyectos grandes de software, resulta difícil identificar qué partes del código están correctamente probadas y cuáles no lo están. Por ello, es esencial usar herramientas como Coverage, que nos permite analizar qué porciones de nuestro código han sido ejecutadas durante las pruebas y cuáles no. Esto facilita la detección de áreas que necesitan cobertura adicional.

¿Qué es Coverage y cómo funciona?

Coverage es una herramienta que se ejecuta junto a las pruebas y captura un reporte sobre qué partes del código han sido probadas. Una vez finalizado el proceso, genera un informe detallado que indica qué porcentaje del código está cubierto. De esta manera, puedes identificar qué secciones de código necesitan nuevas pruebas.

¿Cómo instalar y utilizar Coverage?

Para instalar Coverage en un proyecto Python, sigue los siguientes pasos:

  • Abre la terminal e instala la herramienta con pip install coverage.
  • Después, usa pip freeze | grep coverage para agregar la librería a tu archivo de requirements.
  • Una vez instalada, ejecuta el comando coverage run -m unittest discover -s tests, que corre las pruebas en la carpeta tests.

¿Cómo generar el reporte de cobertura?

Para generar el informe de cobertura de código:

  1. Usa el comando coverage report para obtener un resumen de las pruebas.
  2. Si quieres un reporte visual más detallado, ejecuta coverage html. Esto creará una carpeta con archivos HTML que podrás abrir en el navegador.

¿Cómo mejorar el reporte excluyendo archivos de prueba?

Para evitar que los archivos de prueba aparezcan en el reporte, agrega el parámetro --source=src al comando coverage run. Esto asegura que solo se evalúe el código fuente de la aplicación y no las pruebas en sí mismas.

¿Cómo detectar y corregir código sin pruebas?

Coverage permite identificar líneas específicas que no han sido probadas. Usando el reporte HTML, puedes hacer clic en los archivos para ver las líneas de código no ejecutadas. Un ejemplo sería la detección de un método que no maneja una división por cero. Al agregar un test para esta excepción, puedes aumentar la cobertura total del proyecto.

¿Cómo validar un porcentaje mínimo de cobertura?

En proyectos con equipos grandes, es recomendable establecer un porcentaje mínimo de cobertura, como un 80%, para garantizar la calidad del código. Esto se puede configurar en la documentación de Coverage.