c++ jenkins boost-test

c++ - Usando Jenkins con pruebas unitarias boost.test



boost-test (3)

He hecho un poco de Google en esta área y he encontrado muchas discusiones sobre cómo lograr que Jenkins entienda el formato de salida XML de boost.test, pero no una referencia canónica.

Algunas personas dicen que simplemente necesitamos usar XLST para convertir el formato XML, otras sugieren que el XML necesita algo de piratería antes de eso (¿ alguien tiene un XSL para convertir los registros XML de Boost.Test a un formato presentable? ) Algunos sugieren que el complemento xUnit can comprender de forma nativa el formato XML de boost.test, otros dicen que no puede

Como los resultados de mi búsqueda abarcan 5 años, soy consciente de que las cosas podrían haber cambiado. Así que estoy buscando una respuesta actualizada sobre la mejor manera de usar Jenkins para ejecutar y evaluar las pruebas de unidades de refuerzo.


El análisis de xUnit me funciona con Jenkins 1.498, xUnit 1.52, boost 1.42. Tengo un nuevo proyecto que utiliza boost 1.53 y el formato de salida XML parece ser el mismo para mi ojo propenso a los errores humanitarios, pero como todavía no he realizado pruebas de unidad en Jenkins, no tengo 100 % seguro que la salida es compatible.

Como se recomienda en los comentarios del complemento xUnit , estoy ejecutando el programa de prueba Boost con:

run_test --log_format=XML --log_sink=results.xml --log_level=all --report_level=no

Tengo mi paso xUnit posterior a la compilación configurado para analizar results.xml con el formato BoostTest-1.x.

Si aún tiene problemas, tal vez pueda actualizar su pregunta con más detalles sobre sus versiones y sobre cómo generar el resultado de la prueba.


Ok, normalmente funciona con estas opciones. Pero si lo está utilizando en proyectos grandes y el archivo XML se está volviendo demasiado grande, el complemento XUnit ya no funciona. Así que tuve que cambiar el log_level a test_suite . Sólo se registran los errores, no se registran las comprobaciones correctas.


run_test --log_format=XML --log_sink=results.xml --log_level=all --report_level=no --result_code=no

Agregué un parámetro a la respuesta de Dave Bacher porque, aparentemente, Boost Test estaba usando un código de salida distinto de cero para indicar un fallo en la prueba, pero Jenkins estaba interpretando esto como un fallo más fundamental, y por lo tanto se detuvo sin procesar los resultados de la prueba.

exit 201 Build step ''Execute Windows batch command'' marked build as failure`