aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests/python_utils
diff options
context:
space:
mode:
authorGravatar Yong Ni <yongni@google.com>2017-06-26 15:24:40 -0700
committerGravatar Yong Ni <yongni@google.com>2017-06-30 09:41:31 -0700
commitb7ea4ab4d7360fd37d13e91fb0b1dd4ab407dde0 (patch)
tree9a992f89a66ac74b41494090b8aa53ba5215e5c1 /tools/run_tests/python_utils
parent5f5415eae3acb267155a22fa9b612d43c0659676 (diff)
Created test driver to run matrix test against different docker images in GCR and generate a Junit like test result file.
Diffstat (limited to 'tools/run_tests/python_utils')
-rw-r--r--tools/run_tests/python_utils/report_utils.py26
1 files changed, 17 insertions, 9 deletions
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,