From 0cdd9904338e98e43f8781239f7bc175b17f3cd2 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 24 May 2024 11:51:08 +0900 Subject: [PATCH] Updated scripts/parse_mld_xml.py to include pytest result --- scripts/parse_mld_xml.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/scripts/parse_mld_xml.py b/scripts/parse_mld_xml.py index 84acf4fbba..7370cfe7ff 100644 --- a/scripts/parse_mld_xml.py +++ b/scripts/parse_mld_xml.py @@ -28,13 +28,14 @@ if __name__ == "__main__": tree = ElementTree.parse(xml_report) testsuite = tree.find(".//testsuite") - print( - f"Found testsuite with {testsuite.get('tests')} tests and {testsuite.get('failures')} failures." - ) + testcases = tree.findall(".//testcase") results_unsorted = {} + passes = 0 + failures = 0 + errors = 0 for testcase in testcases: if testcase.find(".//skipped") is None: @@ -51,14 +52,29 @@ if __name__ == "__main__": p.get("name"): p.get("value") for p in testcase.findall(".//property") } + + if testcase.find('failure') is not None: + testresult = 'FAIL' + failures = failures + 1 + elif testcase.find('error') is not None: + testresult = 'ERROR' + errors = errors + 1 + else: + testresult = 'PASS' + passes = passes + 1 + properties_values = [str(properties_found.get(p)) for p in PROPERTIES] - outline = ";".join([fulltestname] + properties_values) + "\n" + outline = ";".join([fulltestname,testresult] + properties_values) + "\n" results_unsorted[fulltestname] = outline results_sorted = dict(sorted(results_unsorted.items())) with open(csv_file, "w") as outfile: - headerline = ";".join(["testcase"] + PROPERTIES) + "\n" + headerline = ";".join(["testcase","Result"] + PROPERTIES) + "\n" outfile.write(headerline) for test in results_sorted: outfile.write(results_sorted[test]) + + print( + f"Parsed testsuite with {passes+failures+errors} tests: {passes} passes, {failures} failures and {errors} errors." + ) -- GitLab