Mostrar número de test ejecutados y pasados en SonarQube con Jest, Vitest y Pytest

Tiempo de lectura: 2 minutos

Hoy vamos a aprender cómo pasar y mostrar el número de tests que se han cubierto en sonarque.

sonarqube total de tests unitarios

Para React con Vite:

Primero instalamos:

npm install -D vitest-sonar-reporter  

Ahora vamos al archivo vitest.config.ts

Añadimos:

reporters: ['default', 'vitest-sonar-reporter'], // JUnit reporter para generar informes de pruebas
outputFile: 'test-results/test-results.xml', // Ruta del XML que leerá SonarQube

Dentro de tests: {

Y dentro de nuestro archivo sonar-project.properties

sonar.testExecutionReportPaths=test-results/test-results.xml

También debemos indicar la ruta correcta dónde tenemos los tests:

sonar.tests=tests

Con esto ya solo tendremos que ejecutar sonar scanner para que funcione.

Importante, asegurarse de que los archivos de tests no están ignorados:

sonar.exclusions=.vscode/**

Para React Native con Jest

Primero instalamos:

npm install --save-dev jest-sonar 

Ahora vamos al archivo vitest.config.ts

Añadimos:

    reporters: [
        "default",
        ["jest-sonar", {
            outputDirectory: "test-results",
            outputName: "test-results.xml",
        }]
    ],

Y dentro de nuestro archivo sonar-project.properties

sonar.testExecutionReportPaths=test-results/test-results.xml

También debemos indicar la ruta correcta dónde tenemos los tests:

sonar.tests=tests

Con esto ya solo tendremos que ejecutar sonar scanner para que funcione.

Importante, asegurarse de que los archivos de tests no están ignorados:

sonar.exclusions=.vscode/**

Para python con Pytest

Ejecutamos el comando de Pytest con este parámetro:

--junitxml=xunit-reports/xunit-result.xml

Y dentro de nuestro archivo sonar-project.properties

sonar.junit.reportPaths=xunit-reports/xunit-result.xml

También debemos indicar la ruta correcta dónde tenemos los tests:

sonar.tests=tests

Con esto ya solo tendremos que ejecutar sonar scanner para que funcione.

Importante, asegurarse de que los archivos de tests no están ignorados:

sonar.exclusions=.vscode/**

*Importante: el achivo generado debe tener la estructura de <testsuite> <testcase>

<testsuite name="...." errors="0" failures="0" skipped="0" timestamp="2025-05-21T09:02:49" time="5.575" tests="4">
    <testcase>...

También os recomiendo añadir la carpeta del reporte dentro de .gitignore.

Deja un comentario