test run results plugin jenkins testng maven-surefire-plugin parallel-testing

run - show test results in jenkins



Ejecutar la prueba en paralelo con surefire y mostrarlos correctamente con el plugin TestNG Jenkins (1)

Estoy ejecutando pruebas con ejecución paralela usando surefire, y todo parece funcionar bien.

Sin embargo, solo hay un testng-results.xml generado en la carpeta target / surefire-reports / que ... solo contiene los resultados de la última prueba ejecutada.

Encontré un problema exactamente para el reportado para una versión anterior de surefire, y dice "no arreglaré" aquí:

Sin embargo, dudo que sea la primera persona en el planeta que intenta ejecutar pruebas unitarias en paralelo con Jenkins y quiere que los resultados se muestren correctamente utilizando el plugin TestNG Jenkins, así que estoy bastante seguro de que debe haber una solución para esto. , ¿derecho?

Aquí está mi configuración de plugin surefire:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${basepom.plugin.surefire.version}</version> <configuration> <forkCount>2.5C</forkCount> <reuseForks>false</reuseForks> </configuration> </plugin>

Aquí está el enlace a la configuración surefire por cierto .:


De hecho, terminé encontrando una solución que funcionó para mí.

Creo que el problema es tratar de hacerlo con forkCount / reuseForks, así que los he restablecido a los valores predeterminados (también podría omitir esas propiedades si no está intentando sobrescribir algo desde una base pom, etc.).

En cambio, he usado parallel y threadCount. Sin embargo, esos solo se aplican a TestNG, pero luego, también lo necesito para TestNG (no para JUnit).

Esto hace que las pruebas se ejecuten en paralelo, pero testng-results.xml se genera correctamente (sin sobrescribir cada prueba que se ejecuta en paralelo).

Más detalles aquí:

Aquí está la configuración del complemento que tengo ahora:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- those are the two default values, you can probably skip them --> <forkCount>1</forkCount> <reuseForks>true</reuseForks> <!-- that''s what made it work --> <parallel>classes</parallel> <threadCount>10</threadCount> </configuration> </plugin>

Obviamente, el recuento de subprocesos podría ser más bajo o más alto según lo que desee hacer / qué especificaciones tenga su servidor, y podría cambiar la configuración dependiendo de si desea ejecutar clases, o algún otro "nivel" en paralelo.

Además, puede configurar paralelo e threadCount junto con otras propiedades en el archivo del paquete, si elige usar un archivo de suite.