Question

I have done a bit of Googling in this area and have found many discussions about getting Jenkins to understand boost.test's XML output format, but no canonical reference.

Some people say we simply need to use XLST to convert the XML format, others suggest the XML needs some hacking before that (Anyone have an XSL to convert Boost.Test XML logs to a presentable format?). Some suggest the xUnit plugin can natively understand boost.test XML format, others state it can't

Because my search results span 5 years, I'm conscious that things could have changed. So I'm seeking an up to date answer about the best way to use Jenkins to run and evaluate boost unit tests.

Was it helpful?

Solution

xUnit parsing works for me using Jenkins 1.498, xUnit 1.52, boost 1.42. I have a new project using boost 1.53 and the XML output format appears to be the same to my all-to-humanly-error-prone eye, but since I haven't yet set up unit tests in Jenkins, I'm not 100% sure the output is compatible.

As recommended in the xUnit plugin comments, I'm running the Boost test program with:

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

I have my post-build xUnit step configured to parse results.xml with the BoostTest-1.x format.

If you're still having problems, perhaps you can update your question with more details about your versions and how you generate the test output.

OTHER TIPS

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

I've added a parameter to Dave Bacher's answer because apparently Boost Test was using a non-zero exit code to indicate a test failure but Jenkins was interpreting this as a more fundamental failure, and thus stopping without processing the test results.

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

Ok, normally it works with this options. But if you are using it in large Projects and the XML file is getting too big, the XUnit plugin does not work anymore. So I had to change the log_level to test_suite. Only the errors are logged, the successful checks are not logged.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top