public function execute(InputInterface $input, OutputInterface $output) { $suiteName = $input->getArgument('suite'); $this->output = $output; $config = \Codeception\Configuration::config($input->getOption('config')); $settings = \Codeception\Configuration::suiteSettings($suiteName, $config); $options = $input->getOptions(); $options['debug'] = true; $options['steps'] = true; $this->codecept = new \Codeception\Codecept($options); $dispatcher = $this->codecept->getDispatcher(); $suiteManager = new SuiteManager($dispatcher, $suiteName, $settings); $this->suite = $suiteManager->getSuite(); $this->test = new Cept($dispatcher, array('name' => 'interactive', 'file' => 'interactive')); $guy = $settings['class_name']; $scenario = new Scenario($this->test); $I = new $guy($scenario); $this->listenToSignals(); $output->writeln("<info>Interactive console started for suite {$suiteName}</info>"); $output->writeln("<info>Try Codeception commands without writing a test</info>"); $output->writeln("<info>type 'exit' to leave console</info>"); $output->writeln("<info>type 'actions' to see all available actions for this suite</info>"); $dispatcher->dispatch('suite.before', new Suite($this->suite, $this->codecept->getResult(), $settings)); $dispatcher->dispatch('test.parsed', new \Codeception\Event\Test($this->test)); $dispatcher->dispatch('test.before', new \Codeception\Event\Test($this->test)); $output->writeln("\n\n\$I = new {$settings['class_name']}(\$scenario);"); $scenario->run(); $this->executeCommands($output, $I, $settings['bootstrap']); $dispatcher->dispatch('test.after', new \Codeception\Event\Test($this->test)); $dispatcher->dispatch('suite.after', new Suite($this->suite)); $output->writeln("<info>Bye-bye!</info>"); }
public function execute(InputInterface $input, OutputInterface $output) { $suiteName = $input->getArgument('suite'); $this->output = $output; $config = Configuration::config($input->getOption('config')); $settings = Configuration::suiteSettings($suiteName, $config); $options = $input->getOptions(); $options['debug'] = true; $options['steps'] = true; $this->codecept = new Codecept($options); $dispatcher = $this->codecept->getDispatcher(); $this->test = (new Cept())->configDispatcher($dispatcher)->configName('interactive')->config('file', 'interactive')->initConfig(); $suiteManager = new SuiteManager($dispatcher, $suiteName, $settings); $suiteManager->initialize(); $this->suite = $suiteManager->getSuite(); $scenario = new Scenario($this->test); $actor = $settings['class_name']; $I = new $actor($scenario); $this->listenToSignals(); $output->writeln("<info>Interactive console started for suite {$suiteName}</info>"); $output->writeln("<info>Try Codeception commands without writing a test</info>"); $output->writeln("<info>type 'exit' to leave console</info>"); $output->writeln("<info>type 'actions' to see all available actions for this suite</info>"); $suiteEvent = new SuiteEvent($this->suite, $this->codecept->getResult(), $settings); $dispatcher->dispatch(Events::SUITE_BEFORE, $suiteEvent); $dispatcher->dispatch(Events::TEST_PARSED, new TestEvent($this->test)); $dispatcher->dispatch(Events::TEST_BEFORE, new TestEvent($this->test)); $output->writeln("\n\n\$I = new {$settings['class_name']}(\$scenario);"); $scenario->run(); $this->executeCommands($output, $I, $settings['bootstrap']); $dispatcher->dispatch(Events::TEST_AFTER, new TestEvent($this->test)); $dispatcher->dispatch(Events::SUITE_AFTER, new SuiteEvent($this->suite)); $output->writeln("<info>Bye-bye!</info>"); }