taskAtoum() * ->files('path/to/test.php') * ->configFile('config/dev.php') * ->run() * * ?> * ``` */ class Atoum extends BaseTask implements CommandInterface, PrintedInterface { use \Robo\Common\ExecOneCommand; /** * @var string */ protected $command; /** * Atoum constructor. * * @param null|string $pathToAtoum * * @throws \Robo\Exception\TaskException */ public function __construct($pathToAtoum = null) { $this->command = $pathToAtoum; if (!$this->command) { $this->command = $this->findExecutable('atoum'); } if (!$this->command) { throw new \Robo\Exception\TaskException(__CLASS__, "Neither local atoum nor global composer installation not found"); } } /** * Tag or Tags to filter. * * @param string|array $tags * * @return $this */ public function tags($tags) { return $this->addMultipleOption('tags', $tags); } /** * Display result using the light reporter. * * @return $this */ public function lightReport() { $this->option("--use-light-report"); return $this; } /** * Display result using the tap reporter. * * @return $this */ public function tap() { $this->option("use-tap-report"); return $this; } /** * Path to the bootstrap file. * @param string $file * * @return $this */ public function bootstrap($file) { $this->option("bootstrap", $file); return $this; } /** * Path to the config file. * * @param string $file * * @return $this */ public function configFile($file) { $this->option('-c', $file); return $this; } /** * Use atoum's debug mode. * * @return $this */ public function debug() { $this->option("debug"); return $this; } /** * Test file or test files to run. * * @param string|array * * @return $this */ public function files($files) { return $this->addMultipleOption('f', $files); } /** * Test directory or directories to run. * * @param string|array A single directory or a list of directories. * * @return $this */ public function directories($directories) { return $this->addMultipleOption('directories', $directories); } /** * @param string $option * @param string|array $values * * @return $this */ protected function addMultipleOption($option, $values) { if (is_string($values)) { $values = [$values]; } foreach ($values as $value) { $this->option($option, $value); } return $this; } /** * {@inheritdoc} */ public function getCommand() { return $this->command . $this->arguments; } /** * {@inheritdoc} */ public function run() { $this->printTaskInfo('Running atoum ' . $this->arguments); return $this->executeCommand($this->getCommand()); } }