setDefinition(
[
new InputArgument('suite', InputArgument::OPTIONAL, 'to show suite configuration'),
new InputOption('config', 'c', InputOption::VALUE_OPTIONAL, 'Use custom path for config'),
new InputOption('override', 'o', InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED, 'Override config values'),
]
);
parent::configure();
}
public function getDescription()
{
return 'Validates and prints config to screen';
}
public function execute(InputInterface $input, OutputInterface $output)
{
$this->addStyles($output);
if ($suite = $input->getArgument('suite')) {
$output->write("Validating $suite config... ");
$config = $this->getSuiteConfig($suite, $input->getOption('config'));
$output->writeln("Ok");
$output->writeln("------------------------------\n");
$output->writeln("$suite Suite Config:\n");
$output->writeln($this->formatOutput($config));
return;
}
$output->write("Validating global config... ");
$config = $this->getGlobalConfig();
$output->writeln($input->getOption('override'));
if (count($input->getOption('override'))) {
$config = $this->overrideConfig($input->getOption('override'));
}
$suites = Configuration::suites();
$output->writeln("Ok");
$output->writeln("------------------------------\n");
$output->writeln("Codeception Config:\n");
$output->writeln($this->formatOutput($config));
$output->writeln('Directories:');
$output->writeln("codecept_root_dir() " . codecept_root_dir());
$output->writeln("codecept_output_dir() " . codecept_output_dir());
$output->writeln("codecept_data_dir() " . codecept_data_dir());
$output->writeln('');
$output->writeln("Available suites: " . implode(', ', $suites));
foreach ($suites as $suite) {
$output->write("Validating suite $suite... ");
$this->getSuiteConfig($suite);
$output->writeln('Ok');
}
$output->writeln("Execute codecept config:validate [] to see config for a suite");
}
protected function formatOutput($config)
{
$output = print_r($config, true);
return preg_replace('~\[(.*?)\] =>~', "$1 =>", $output);
}
}