Exemple #1
0
    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
Exemple #2
0
    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)