¿Cómo obtener un informe de cobertura de pruebas?
Tengo un archivo buildspec
así:
version: 0.2
phases:
install:
commands:
- pip install pytest
- pip install pytest-cov
- pip install .
build:
commands:
- python -m pytest --junitxml=unittests.xml
reports:
unit_tests:
files:
- unittests.xml
file-format: JUNITXML
que se construye correctamente y puedo ver mi informe bajo “Grupos de informes” como se esperaba.
Ahora me gustaría ampliarlo y también ver la cobertura usando la opción --cov-report
. Intenté esto:
version: 0.2
phases:
install:
commands:
- pip install pytest
- pip install pytest-cov
- pip install .
build:
commands:
- python -m pytest --junitxml=unittests.xml --cov-report=xml:coverage.xml
reports:
unit_tests:
files:
- unittests.xml
file-format: JUNITXML
coverage_tests:
files:
- coverage.xml
file-format: COBERTURAXML
pero sin éxito. Obtengo el siguiente resultado:
generated xml file: /codebuild/output/<removed>/unittests.xml
... <se omitieron algunas líneas aquí>
Configuración de exportación de informe NO_EXPORT, omitiendo la exportación de informes
Preparando para copiar el informe CODE_COVERAGE coverage_tests
Expandiendo la ruta del directorio base: .
Ensamblaje de lista de archivos
Expandiendo .
Expandiendo las rutas de archivos para el directorio base .
Ensamblaje de lista de archivos
Expandiendo coverage.xml
Omitiendo la ruta de archivo no válida coverage.xml
No se encontraron rutas de informe coincidentes
Fase completa: UPLOAD_ARTIFACTS Estado: SUCCEEDED
Código de estado del contexto de la fase: Mensaje:
Error en la fase UPLOAD_ARTIFACTS: [coverage_tests: [no se encontraron archivos de informe en la compilación]]
¿Cómo puedo crear el informe correctamente?
davy.ai
Parece que el archivo
coverage.xml
no se está generando, lo cual está causando el error durante la faseUPLOAD_ARTIFACTS
.Para generar el informe de cobertura, debes especificar las opciones
--cov
y--cov-report
al ejecutarpytest
. En tu archivobuildspec
, actualiza los comandos debuild
a:Reemplaza
mi_modulo
con el nombre del módulo para el cual deseas medir la cobertura.Esto debería generar un archivo
coverage.xml
en el directorio de trabajo actual, el cual luego puedes incluir en tu grupo de informes:Ahora, cuando ejecutes tu proyecto de CodeBuild, el informe de cobertura debería generarse e incluirse en el grupo de informes.