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.