diff --git a/ros2_batch_job/__main__.py b/ros2_batch_job/__main__.py index d0514364c..33a3f5a43 100644 --- a/ros2_batch_job/__main__.py +++ b/ros2_batch_job/__main__.py @@ -13,7 +13,9 @@ # limitations under the License. import argparse +import configparser import os +from pathlib import Path import platform from shutil import which import subprocess @@ -380,6 +382,21 @@ def build_and_test(args, job): # xunit2 format is needed to make Jenkins xunit plugin 2.x happy with open('pytest.ini', 'w') as ini_file: ini_file.write('[pytest]\njunit_family=xunit2') + # check if packages have a pytest.ini file and add the xunit2 + # format if it is not present + for path in Path('.').rglob('pytest.ini'): + config = configparser.ConfigParser() + config.read(str(path)) + try: + # only if xunit2 is set continue the loop with the file unpatched + if config.get('pytest', 'junit_family') == 'xunit2': + continue + except configparser.NoOptionError: + pass + print('xunit2 patch applied to ' + str(path)) + config.set('pytest', 'junit_family', 'xunit2') + with open(path, 'w+') as configfile: + config.write(configfile) test_cmd = [ args.colcon_script, 'test',