def run_tests(self, tests_mapping): """ run testcase/testsuite data """ # parse tests self.exception_stage = "parse tests" parsed_tests_mapping = parser.parse_tests(tests_mapping) if self.save_tests: utils.dump_tests(parsed_tests_mapping, "parsed") # add tests to test suite self.exception_stage = "add tests to test suite" test_suite = self._add_tests(parsed_tests_mapping) # run test suite self.exception_stage = "run test suite" results = self._run_suite(test_suite) # aggregate results self.exception_stage = "aggregate results" self._summary = self._aggregate(results) # generate html report self.exception_stage = "generate html report" report.stringify_summary(self._summary) if self.save_tests: utils.dump_summary(self._summary, tests_mapping["project_mapping"]) report_path = report.render_html_report(self._summary, self.report_template, self.report_dir) return report_path
def run_path(self, path, dot_env_path=None, mapping=None): """ run testcase/testsuite file or folder. Args: path (str): testcase/testsuite file/foler path. dot_env_path (str): specified .env file path. mapping (dict): if mapping is specified, it will override variables in config block. Returns: instance: HttpRunner() instance """ # load tests self.exception_stage = "load tests" tests_mapping = loader.load_tests(path, dot_env_path) tests_mapping["project_mapping"]["test_path"] = path if mapping: tests_mapping["project_mapping"]["variables"] = mapping if self.save_tests: utils.dump_tests(tests_mapping, "loaded") return self.run_tests(tests_mapping)