es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el archivo coverage.xml no se está generando, lo cual está causando el error durante la fase UPLOAD_ARTIFACTS.

    Para generar el informe de cobertura, debes especificar las opciones --cov y --cov-report al ejecutar pytest. En tu archivo buildspec, actualiza los comandos de build a:

    build:
      commands:
        - python -m pytest --junitxml=unittests.xml --cov=mi_modulo --cov-report=xml:coverage.xml
    

    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:

    reports:
      unit_tests:
        files:
          - unittests.xml
        file-format: JUNITXML
      coverage_tests:
        files:
          - coverage.xml
        file-format: COBERTURAXML
    

    Ahora, cuando ejecutes tu proyecto de CodeBuild, el informe de cobertura debería generarse e incluirse en el grupo de informes.

Comments are closed.