Tarea Publicar resultados de cobertura de código

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

Use esta tarea en una canalización de compilación para publicar los resultados de cobertura de código generados al ejecutar pruebas en Azure Pipelines o TFS con el fin de obtener informes de cobertura. La tarea admite formatos de resultados de cobertura populares, como Cobertura y JaCoCo.

Esta tarea solo se puede usar en las canalizaciones de compilación y no se admite en las canalizaciones de versión.

Tareas como Visual Studio Test,.NET Core,Ant,Maven,Gulpy Grunt también proporcionan la opción de publicar datos de cobertura de código en la canalización. Si usa estas tareas, no necesita una tarea Publicar resultados de cobertura de código independiente en la canalización.

Peticiones

Para generar el informe de cobertura de código HTML, necesita dotnet 2.0.0 o posterior en el agente. La carpeta dotnet debe estar en la ruta de acceso del entorno. Si hay varias carpetas que contienen dotnet, la que tiene la versión 2.0.0 debe estar delante de cualquier otra en la lista de rutas de acceso.

Fragmento de código YAML

# Publish code coverage results
# Publish Cobertura or JaCoCo code coverage results from a build
- task: PublishCodeCoverageResults@1
  inputs:
    codeCoverageTool: 'JaCoCo' # Available options: 'JaCoCo', 'Cobertura'
    summaryFileLocation: 
    #pathToSources: # Optional
    #reportDirectory: # Optional
    #additionalCodeCoverageFiles: # Optional
    #failIfCoverageEmpty: false # Optional

Los parámetros codeCoverageTool y summaryFileLocation son obligatorios.

Para publicar los resultados de cobertura de código para JavaScript con JavaScript con YAML, consulte JavaScript en la sección Ecosistemas de estos temas, que también incluye ejemplos para otros lenguajes.

Para ver un ejemplo de publicación de cobertura de código mediante Cobertura, consulte esta sección sobre la cobertura de código.

Argumentos

Argumento Descripción
codeCoverageTool
Herramienta de cobertura de código
(Obligatorio) De forma predeterminada, use JaCoCo. Opciones disponibles: JaCoCo, Cobertura.
summaryFileLocation
Ruta de acceso a los archivos de resumen
(Obligatorio) Ruta de acceso del archivo de resumen que contiene estadísticas de cobertura de código, como la cobertura de línea, método y clase. Varios archivos de resumen se combinarán en un único informe. El valor puede contener patrones de minimatch.
Por ejemplo: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura/coverage.xml
pathToSources
Ruta de acceso a los archivos de origen
(Opcional) La ruta de acceso a los archivos de origen es necesaria cuando los informes XML de cobertura no contienen una ruta de acceso absoluta a los archivos de origen.
Por ejemplo, los informes de JaCoCo no usan rutas de acceso absolutas y, al publicar la cobertura de JaCoCo para aplicaciones Java, el patrón sería similar a $(System.DefaultWorkingDirectory)/MyApp/src/main/java/ .
Esta entrada también es necesaria si las pruebas se ejecutan en un contenedor de Docker. Esta entrada debe apuntar a la ruta de acceso absoluta a los archivos de origen en el host.
Por ejemplo: $(System.DefaultWorkingDirectory)/MyApp/
reportDirectory
Directorio de informes
(Opcional) Ruta de acceso del directorio de informe HTML de cobertura de código. El directorio del informe se publica para su posterior visualización como un artefacto de la compilación. El valor puede contener patrones de minimatch. Por ejemplo: $(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura
additionalCodeCoverageFiles
Archivos adicionales
(Opcional) Patrón de ruta de acceso de archivo que especifica los archivos de cobertura de código adicionales que se publicarán como artefactos de la compilación. El valor puede contener patrones de minimatch. Por ejemplo: $(System.DefaultWorkingDirectory)/**/*.exec
failIfCoverageEmpty
Error si faltan resultados de cobertura de código
(Opcional) Error en la tarea si la cobertura de código no produjo ningún resultado para publicar.

Docker

En el caso de las aplicaciones que usan Docker, la compilación y las pruebas se pueden ejecutar dentro del contenedor, generando resultados de cobertura de código dentro del contenedor. Para publicar los resultados en la canalización, los artefactos resultantes deben estar disponibles para la tarea Publicar resultados de cobertura de código. Como referencia, puede ver un ejemplo similar para publicar los resultados de pruebas en la sección Compilación, prueba y publicación de resultados con un archivo de Docker para Docker.

Vista de resultados

Para ver los resultados de cobertura de código en la canalización, consulte Revisión de los resultados de cobertura de código.

Código Abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

¿Se combinan los datos de cobertura de código cuando se proporcionan varios archivos como entrada a la tarea o se usan varias tareas en la canalización?

En la actualidad, la funcionalidad de informes de cobertura de código proporcionada por esta tarea es limitada y no combina los datos de cobertura. Si proporciona varios archivos como entrada a la tarea, solo se tiene en cuenta la primera coincidencia. Si usa varias tareas de cobertura de código de publicación en la canalización, se muestra el resumen y el informe de la última tarea. Los datos cargados previamente se omiten.

Ayuda y soporte técnico

Problemas conocidos

La tarea de resultados de la cobertura de código de publicación genera y publica el informe HTML, un conjunto de archivos HTML que están vinculados desde el archivo index.html principal. Si la pestaña cobertura de código no muestra el informe de cobertura de código, compruebe si el tamaño del archivo index.html está cerca o superior a 7 MB. Complete los pasos siguientes para comprobar el tamaño del archivo. A continuación, si el tamaño del archivo es cercano o superior a 7 MB, puede usar la siguiente solución alternativa para ver el informe de cobertura:

  1. Seleccione la pestaña Resumen de compilación y, a continuación, seleccione el vínculo publicado:

    Captura de pantalla que muestra el vínculo publicado en el panel Resumen.

  2. Junto al artefacto Code Coverage Report_*, seleccione Download artifacts (Descargar artefactos):

    Captura de pantalla que muestra el vínculo Descargar artefactos para el informe de cobertura de código en Artifacts.

  3. Cuando se descargue el informe de cobertura de código, extraiga el .zip archivo.

  4. En el informe de cobertura de código, compruebe el tamaño de index.html para ayudar a determinar si el tamaño del archivo está causando el problema descrito aquí.

  5. Abra index.html en un explorador para ver el informe de cobertura de código.