From 314f32ed45f52c01685e04ce6af2170e91942f49 Mon Sep 17 00:00:00 2001 From: Michael Kaye <1917473+michaelkaye@users.noreply.github.com> Date: Wed, 9 Mar 2022 09:33:05 +0000 Subject: [PATCH] If a FileNotFound exception occurs, log a simple message indicating the tests may have not run. --- tools/ci/render_test_output.py | 55 ++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/tools/ci/render_test_output.py b/tools/ci/render_test_output.py index 1e7940ce04..f955b93cf9 100755 --- a/tools/ci/render_test_output.py +++ b/tools/ci/render_test_output.py @@ -13,32 +13,35 @@ print("::group::Arguments") print(f"{sys.argv}") print("::endgroup::") for xmlfile in xmlfiles: - tree = ET.parse(xmlfile) + try: + tree = ET.parse(xmlfile) - root = tree.getroot() - name = root.attrib['name'] - time = root.attrib['time'] - tests = int(root.attrib['tests']) - skipped = int(root.attrib['skipped']) - errors = int(root.attrib['errors']) - failures = int(root.attrib['failures']) - success = tests - failures - errors - skipped - total = tests - skipped - print(f"::group::{name} {success}/{total} ({skipped} skipped) in {time}") - - for testcase in root: - if testcase.tag != "testcase": - continue - testname = testcase.attrib['classname'] - message = testcase.attrib['name'] - time = testcase.attrib['time'] - child = testcase.find("failure") - if child is None: - print(f"{message} in {time}s") - else: - print(f"::error file={testname}::{message} in {time}s") - print(child.text) - body = f"passed={success} failures={failures} errors={errors} skipped={skipped}" - print(f"::set-output name={suitename}::={body}") + root = tree.getroot() + name = root.attrib['name'] + time = root.attrib['time'] + tests = int(root.attrib['tests']) + skipped = int(root.attrib['skipped']) + errors = int(root.attrib['errors']) + failures = int(root.attrib['failures']) + success = tests - failures - errors - skipped + total = tests - skipped + print(f"::group::{name} {success}/{total} ({skipped} skipped) in {time}") + + for testcase in root: + if testcase.tag != "testcase": + continue + testname = testcase.attrib['classname'] + message = testcase.attrib['name'] + time = testcase.attrib['time'] + child = testcase.find("failure") + if child is None: + print(f"{message} in {time}s") + else: + print(f"::error file={testname}::{message} in {time}s") + print(child.text) + body = f" passed={success} failures={failures} errors={errors} skipped={skipped}" + print(f"::set-output name={suitename}::={body}") + except FileNotFoundError: + print(f"::error::Unable to open test results file {xmlfile} - check if the tests completed") print("::endgroup::")