diff options
author | Cédric Ollivier <cedric.ollivier@orange.com> | 2018-08-07 07:16:57 +0200 |
---|---|---|
committer | Cédric Ollivier <cedric.ollivier@orange.com> | 2018-08-07 09:36:58 +0200 |
commit | f42e4276414e492afde19deb368c1e77d4dffbeb (patch) | |
tree | 6e76c7b13a41ed192462672e57adb9980d6589d9 /xtesting/core/robotframework.py | |
parent | 0e7ac62b724393529172ab276c89b97e2c8539aa (diff) |
Generate robot reports
Change-Id: Ib9efe14bce6227f9609200c12ded4470bd0be969
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit b7f4eaa213b65a266f527d9def7679eac7e0353b)
Diffstat (limited to 'xtesting/core/robotframework.py')
-rw-r--r-- | xtesting/core/robotframework.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/xtesting/core/robotframework.py b/xtesting/core/robotframework.py index 007b9629..4cba7bbb 100644 --- a/xtesting/core/robotframework.py +++ b/xtesting/core/robotframework.py @@ -17,6 +17,7 @@ import os import robot.api from robot.errors import RobotError +from robot.reporting import resultwriter import robot.run from robot.utils.robottime import timestamp_to_secs from six import StringIO @@ -77,6 +78,15 @@ class RobotFramework(testcase.TestCase): self.details['description'] = result.suite.name self.details['tests'] = visitor.get_data() + def generate_report(self): + """Generate html and xunit outputs""" + result = robot.api.ExecutionResult(self.xml_file) + writer = resultwriter.ResultWriter(result) + return writer.write_results( + report='{}/report.html'.format(self.res_dir), + log='{}/log.html'.format(self.res_dir), + xunit='{}/xunit.xml'.format(self.res_dir)) + def run(self, **kwargs): """Run the RobotFramework suites @@ -113,11 +123,12 @@ class RobotFramework(testcase.TestCase): robot.run(*suites, variable=variable, variablefile=variablefile, include=include, output=self.xml_file, log='NONE', report='NONE', stdout=stream) - self.__logger.info("\n" + stream.getvalue()) - self.__logger.info("Results were successfully generated") + self.__logger.info("\n%s", stream.getvalue()) try: self.parse_results() self.__logger.info("Results were successfully parsed") + assert self.generate_report() == 0 + self.__logger.info("Results were successfully generated") except RobotError as ex: self.__logger.error("Run suites before publishing: %s", ex.message) return self.EX_RUN_ERROR |