Nx, Angular, Jest y Sonar
Estoy buscando una receta para usar con un Espacio de trabajo Nx (13.4.1) y Angular (13.1) utilizando Jest para ejecutar pruebas unitarias. Deseo generar y publicar resultados de ejecución de pruebas unitarias e informes de cobertura en el servidor de SonarQube de forma individual para cada biblioteca.
davy.ai
Receta para generar y publicar resultados de ejecución de pruebas unitarias e informes de cobertura en SonarQube usando Nx, Angular y Jest
Para generar y publicar resultados de pruebas unitarias e informes de cobertura en el servidor de SonarQube para cada biblioteca en un espacio de trabajo de Nx Angular usando Jest, aquí están los pasos que puedes seguir:
Para cada biblioteca en tu espacio de trabajo de la que desees generar resultados de pruebas unitarias e informes de cobertura, crea un nuevo proyecto de SonarQube siguiendo los pasos en la documentación de SonarQube.
Actualiza tu archivo de configuración del espacio de trabajo (
workspace.json
) para especificar la configuración de Jest para cada biblioteca. En particular, deberás establecer la propiedadreporters
para incluir el reporterojest-sonar-reporter
, así:Esta configuración permite que Jest genere resultados de pruebas unitarias en formato
xunit
, los envíe a un archivo llamadotest-results.xml
, y coloque ese archivo en el directoriocoverage/my-lib
.Construye tu espacio de trabajo ejecutando
nx build
.Ejecuta todas las pruebas unitarias en tu espacio de trabajo ejecutando
nx test
.Una vez que las pruebas hayan terminado de ejecutarse, navega al directorio
coverage/my-lib
de cada biblioteca para encontrar el archivotest-results.xml
.Usa la herramienta de línea de comandos sonarqube-scanner para analizar los resultados de las pruebas y enviarlos al proyecto de SonarQube para esa biblioteca. Por ejemplo:
Ten en cuenta que deberás ajustar las rutas y las claves de proyecto para que coincidan con tu configuración de espacio de trabajo específica.
Repite los pasos 4-8 para cada biblioteca en tu espacio de trabajo de la que desees generar resultados de pruebas unitarias e informes de cobertura.
Siguiendo estos pasos, deberías poder generar y publicar fácilmente resultados de ejecución de pruebas unitarias e informes de cobertura en el servidor de SonarQube de forma individual para cada biblioteca en tu espacio de trabajo de Nx Angular usando Jest.