#!/usr/bin/env python import os import sys import argparse import xml.etree.ElementTree as ET def parse_args(argv): parser = argparse.ArgumentParser() parser.add_argument('--strip', type=str, required=True, help="path to strip out") parser.add_argument('xmlpath', nargs=1, help="path to junit.xml") return parser.parse_args(argv) def main(argv): args = parse_args(argv) strip_path = args.strip.split(os.path.sep) et = ET.parse(args.xmlpath[0]) for elem in et.findall('.//*/class'): file_path = os.path.abspath(elem.get('filename')).split(os.path.sep) if strip_path == file_path[:len(strip_path)]: file_path = file_path[len(strip_path):] elem.set('filename', os.path.join(*file_path)) et.write(args.xmlpath[0]) return 0 if __name__ == '__main__': sys.exit(main(sys.argv[1:]))