pytest-leak-finder: localizar el test que contamina la suite mediante búsqueda binaria

Fuentes: pytest-leak-finder: Find the test that's leaking before the one that fails

pytest-leak-finder es un plugin para pytest, el popular framework de pruebas en Python, que ayuda a resolver uno de los problemas más comunes y exasperantes del testing: un test que pasa de forma individual pero falla cuando se ejecuta junto al resto de la suite. ¿Por qué ocurre esto? Porque algún test anterior deja estado residual (variables globales, archivos, conexiones, mocks sin cerrar) que contamina los siguientes.

El plugin aplica una estrategia inspirada en git bisect: realiza una búsqueda binaria sobre los tests ejecutados antes del que falla (el "target"). En cada iteración, ejecuta la mitad de esos tests previos junto con el target. Si el target sigue fallando, esa mitad contiene al culpable y se subdivide; si pasa, se descarta y se explora la otra mitad. El proceso se repite hasta aislar el test responsable.

El repositorio incluye un ejemplo paso a paso con seis tests, donde test5 falla solo dentro de la suite. Tras varias ejecuciones con la opción --leak-finder, el plugin identifica test3 como origen de la fuga. Es una herramienta especialmente útil en proyectos con suites grandes, donde revisar manualmente decenas de tests previos resulta inviable. Funciona como complemento de pytest --lf (last failed) y se integra sin modificar el código de los tests. Su licencia y código están disponibles en GitHub bajo el usuario mgaitan.