def _combine_suite_xmls(self): result = Result() result.suite.name = self.name for result_path in self.result_paths: new_result = ExecutionResult(result_path) result.suite.suites.append(new_result.suite) result.save(path=path.join(self.config['outputdir'], 'output.xml'))
def _combine_all_devices(self): all_devices = Result() all_devices.suite.name = self.name for device_file in self.device_filenames: current_result = ExecutionResult(path.join(self.config['outputdir'], device_file)) current_result.suite.name = device_file all_devices.suite.suites.append(current_result.suite) all_devices.save(path=path.join(self.config['outputdir'], 'devices.xml'))
def _gather_device_xmls(self): for device_file in self.device_filenames: device_result = Result() device_result.name = device_file.replace('.xml', '') for test_name in self.test_names: current_result_path = path.join(self.config['outputdir'], test_name, device_file) try: current_result = ExecutionResult(current_result_path) current_result.suite.name = test_name device_result.suite.suites.append(current_result.suite) except Exception as e: logger.error('unable to parse log file {}: {}'.format(current_result_path, e)) device_result.save(path=path.join(self.config['outputdir'], device_file))
def _create_suite_xml(self, test_name): dir_path = path.join(self.config['outputdir'], test_name) result = Result() result.suite.name = test_name result_files = listdir(dir_path) result_files = [*filter(lambda result_file: result_file.endswith('.xml'), result_files)] result_files = [*map(lambda result_file: path.join(dir_path, result_file), result_files)] for result_file in result_files: try: new_result = ExecutionResult(result_file) result.suite.suites.append(new_result.suite) except Exception as e: logger.info('could not parse result file {}: {}'.format(result_file, e)) result.save(path.join(self.config['outputdir'], test_name + '.xml'))
def save_intermediate_results(self): """Method creates intermediate robot result files during test execution :return: """ xml_path, html_path, log_path = self.generate_output_file_names() execution_result = Result(root_suite=self.current_suite_result) ResultWriter(execution_result).write_results( output=xml_path, report=html_path, log=log_path )
def _get_execution_result(self): suite = TestSuite(name=self.EXPECTED_SUITE_NAME) tc = suite.tests.create(name=self.EXPECTED_TEST_NAME, status='PASS') tc.keywords.create(kwname=self.EXPECTED_KEYWORD_NAME, status='PASS') tc = suite.tests.create(name=self.EXPECTED_FAILING_TEST) kw = tc.keywords.create(kwname=self.EXPECTED_KEYWORD_NAME) kw.messages.create(message=self.EXPECTED_DEBUG_MESSAGE, level='DEBUG', timestamp='20201212 12:12:12.000') errors = ExecutionErrors() errors.messages.create(message=self.EXPECTED_ERROR_MESSAGE, level='ERROR', timestamp='20201212 12:12:12.000') return Result(root_suite=suite, errors=errors)
def process_output(self, path): path = path.replace('/', os.sep) try: print "Processing output '%s'" % path result = Result(root_suite=NoSlotsTestSuite()) ExecutionResultBuilder(path).build(result) except: raise RuntimeError('Processing output failed: %s' % utils.get_error_message()) setter = BuiltIn().set_suite_variable setter('$SUITE', process_suite(result.suite)) setter('$STATISTICS', result.statistics) setter('$ERRORS', process_errors(result.errors))
def process_output(self, path): set_suite_variable = BuiltIn().set_suite_variable if not path or path.upper() == 'NONE': set_suite_variable('$SUITE', None) print "Not processing output." return path = path.replace('/', os.sep) try: print "Processing output '%s'." % path result = Result(root_suite=NoSlotsTestSuite()) ExecutionResultBuilder(path).build(result) except: set_suite_variable('$SUITE', None) raise RuntimeError('Processing output failed: %s' % utils.get_error_message()) set_suite_variable('$SUITE', process_suite(result.suite)) set_suite_variable('$STATISTICS', result.statistics) set_suite_variable('$ERRORS', process_errors(result.errors))