phpci = $phpci; $this->build = $build; if (isset($options['executable'])) { $this->executable = $this->phpci->buildPath . DIRECTORY_SEPARATOR.$options['executable']; } else { $this->executable = $this->phpci->findBinary('atoum'); } if (isset($options['args'])) { $this->args = $options['args']; } if (isset($options['config'])) { $this->config = $options['config']; } if (isset($options['directory'])) { $this->directory = $options['directory']; } } /** * Run the Atoum plugin. * @return bool */ public function execute() { $cmd = $this->executable; if ($this->args !== null) { $cmd .= " {$this->args}"; } if ($this->config !== null) { $cmd .= " -c '{$this->config}'"; } if ($this->directory !== null) { $dirPath = $this->phpci->buildPath . DIRECTORY_SEPARATOR . $this->directory; $cmd .= " -d '{$dirPath}'"; } chdir($this->phpci->buildPath); $output = ''; $status = true; exec($cmd, $output); if (count(preg_grep("/Success \(/", $output)) == 0) { $status = false; $this->phpci->log($output); } if (count($output) == 0) { $status = false; $this->phpci->log(Lang::get('no_tests_performed')); } return $status; } }