in pyscripts/inject_into_junit.py [0:0]
def __init__(self, args):
# Parse args
parser = argparse.ArgumentParser(description="Inject Into Junit")
parser.add_argument(
"-junit_file", required=True, nargs=1, help="filename of junit file"
)
parser.add_argument(
"-log_file", required=True, nargs=1, help="filename of log file"
)
arguments = parser.parse_args(args)
junit_file_name = arguments.junit_file[0]
log_file_nanme = arguments.log_file[0]
with open(log_file_nanme, "r", encoding="utf8") as f:
log_file_lines = f.read().splitlines()
xml = JUnitXml.fromfile(junit_file_name)
for suite in xml:
for testcase in suite:
if testcase:
class_name = testcase.classname
test_name = testcase.name
if testcase.system_out:
testcase.system_err = testcase.system_out
lines_for_junit = self.get_testcase_lines_from_log(
log_file_lines, class_name, test_name
)
print(
"TestCase: "
+ test_name
+ " : Injecting ("
+ str(len(lines_for_junit))
+ ") lines"
)
parsed_loglines = "\n".join(lines_for_junit)
testcase.system_out = "\n" + parsed_loglines + "\n"
xml.write()
# remove offending characters
with open(junit_file_name, "rt") as f:
file_content = f.read()
filtered = self.filter_esc_to_ascii7(file_content)
with open(junit_file_name, "w") as f:
f.write(filtered)
print("SUCCESS!")
return