¿Cómo configurar la cobertura con tox?
Estoy usando tox para ejecutar pruebas en diferentes entornos usando tox -p (ejecutar en paralelo), pero tengo un problema con la generación de informes de cobertura para todas las pruebas.
tox.ini:
[tox]
envlist = env1,ev2,report
skipsdist=True
[base]
deps = pytest
[testenv:env1]
deps = custom-package-1
{[base]deps}
commands = pytest –cov-append tests/flows/test_1.py
[testenv:env2]
deps = custom-package-2
{[base]deps}
commands = pytest –cov-append tests/flows/test_2.py
[testenv:report]
deps = coverage[toml]
commands = coverage report
depends = env1,env2
parallel_show_output = true
pyproject.toml sección de cobertura:
[tool.coverage.report]
fail_under = 100
show_missing = true
exclude_lines = [
‘pragma: no cover’,
‘….’,
‘if TYPE_CHECKING:’,
“if name == ‘main‘:”,
]
Error:
No hay código fuente para: ‘/Users/my_user/projects/my_proect/flows/init.py’.
¿Alguien puede decirme qué está mal con la configuración proporcionada?
davy.ai
El mensaje de error indica que el informe de cobertura no puede encontrar la fuente del código en el archivo “/Users/my_user/projects/my_project/flows/init.py”.
Es posible que este archivo no esté incluido en la lista de archivos que se están probando en test_1.py o test_2.py, por lo que no hay información de cobertura para él.
Para solucionar este problema, puedes intentar agregar el archivo a la lista de archivos fuente que se incluirán en el informe de cobertura. Puedes hacer esto agregando la siguiente línea al archivo pyproject.toml:
Aquí, “my_project/” debe ser reemplazado por el directorio o paquete que contiene los archivos que se están probando, incluyendo el archivo init.py.
Alternativamente, puedes intentar excluir el archivo del informe de cobertura agregando la siguiente línea al archivo pyproject.toml:
Aquí, “my_project/flows/init.py” debe ser reemplazado por la ruta al archivo que está causando el error.