From b7ea4ab4d7360fd37d13e91fb0b1dd4ab407dde0 Mon Sep 17 00:00:00 2001 From: Yong Ni Date: Mon, 26 Jun 2017 15:24:40 -0700 Subject: Created test driver to run matrix test against different docker images in GCR and generate a Junit like test result file. --- tools/run_tests/python_utils/report_utils.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'tools/run_tests') diff --git a/tools/run_tests/python_utils/report_utils.py b/tools/run_tests/python_utils/report_utils.py index 4b4c50a03e..9e602102ff 100644 --- a/tools/run_tests/python_utils/report_utils.py +++ b/tools/run_tests/python_utils/report_utils.py @@ -46,8 +46,22 @@ def _filter_msg(msg, output_format): def render_junit_xml_report(resultset, xml_report, suite_package='grpc', suite_name='tests'): """Generate JUnit-like XML report.""" - root = ET.Element('testsuites') - testsuite = ET.SubElement(root, 'testsuite', id='1', package=suite_package, + tree = add_junit_xml_results(resultset, suite_package, suite_name, '1') + create_xml_report_file(xml_report, tree) + +def create_xml_report_file(xml_report, tree): + """Generate JUnit-like report file from xml tree .""" + # ensure the report directory exists + report_dir = os.path.dirname(os.path.abspath(xml_report)) + if not os.path.exists(report_dir): + os.makedirs(report_dir) + tree.write(xml_report, encoding='UTF-8') + +def add_junit_xml_results(resultset, suite_package, suite_name, id, + old_tree=None): + """Returns a JUnit-like XML report tree with added test results.""" + root = ET.Element('testsuites') if not old_tree else old_tree.getroot() + testsuite = ET.SubElement(root, 'testsuite', id=id, package=suite_package, name=suite_name) failure_count = 0 error_count = 0 @@ -67,13 +81,7 @@ def render_junit_xml_report(resultset, xml_report, suite_package='grpc', ET.SubElement(xml_test, 'skipped', message='Skipped') testsuite.set('failures', str(failure_count)) testsuite.set('errors', str(error_count)) - # ensure the report directory exists - report_dir = os.path.dirname(os.path.abspath(xml_report)) - if not os.path.exists(report_dir): - os.makedirs(report_dir) - tree = ET.ElementTree(root) - tree.write(xml_report, encoding='UTF-8') - + return ET.ElementTree(root) def render_interop_html_report( client_langs, server_langs, test_cases, auth_test_cases, http2_cases, -- cgit v1.2.3