diff --git a/src/coordinator.py b/src/coordinator.py index c1bb8cb..24373f3 100644 --- a/src/coordinator.py +++ b/src/coordinator.py @@ -70,6 +70,8 @@ class Coordinator: def run_test(self): logger.info("calling run_test()") self.runners: list[Runner] = self._load_runners(self.env_files) + for runner in self.runners: + runner.run_setup() for runner in self.runners: runner.run_tests() for runner in self.runners: diff --git a/src/runner.py b/src/runner.py index 4b97275..ce8db3b 100644 --- a/src/runner.py +++ b/src/runner.py @@ -34,7 +34,21 @@ class Runner: assert self.test_dir_name self.root_dir = Path(__file__).parent + def run_setup(self): + """runs the setup script if available""" + if not self._dependencies_passed(): + logger.warning(f"skipping run_tests() of {self.name}, because some dependencies have not passed") + return + + # run main setup if available + if isinstance(self.main_setup_name, str): + self._run_or_skip_test( + identifier_string=self.combine_names(self.name, self.main_setup_name), + test_path=self.root_dir / self.test_dir_name / self.main_setup_name, + ) + def run_tests(self): + """runs the main test script and if available and sub test scripts if their running condition is met""" # check if required dependencies have passed if not self._dependencies_passed(): logger.warning(f"skipping run_tests() of {self.name}, because some dependencies have not passed") @@ -66,6 +80,7 @@ class Runner: self._create_result_file(result=-1, identifier_string=identifier_string) def run_cleanup(self): + """runs the cleanup script if available""" if not self._dependencies_passed(): logger.warning("skipping run_cleanup() of {self.name}, because some dependencies have not passed") return