diff --git a/scripts/parse_mld_xml.py b/scripts/parse_mld_xml.py index 84acf4fbba7df736869137058ba935f4dd8e3fba..7370cfe7ff3b39e2bb2319034b06880c77984070 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." + )