/** * Executes a PHPUnit test. * * @return void */ public function phpunit() { $input = JFactory::getApplication()->input; $response = new stdClass(); $folder = $input->getString('folder'); $test = $input->getString('test'); $time_stamp = $input->get('time_stamp'); $resultsBase = $input->getPath('results_base'); $arguments = array(); //-- Joomla! bootstrap $arguments[] = '--bootstrap ' . JPATH_ROOT . DS . 'bootstrap.php'; if (!JFolder::exists(JPATH_ROOT . DS . $resultsBase)) { JFolder::create(JPATH_ROOT . DS . $resultsBase); } //-- JUnit XML log file $logName = JPATH_ROOT . DS . $resultsBase . DS . $time_stamp . '_' . basename($test) . '.xml'; $arguments[] = '--log-junit ' . $logName; //-- @todo: Test Name $arguments[] = 'KuKuTest'; $arguments[] = $folder ? JPATH_ROOT . DS . $folder . DS . $test : JPATH_ROOT . DS . $test; $phpUnit = new EcrPearHelperPhpunit(); ob_start(); $results = $phpUnit->test($arguments); $add = ob_get_contents(); ob_end_clean(); if (JFile::exists($logName)) { $response->text = $add . BR . $phpUnit->showFormattedLog($logName); $response->status = 1; } else { $response->text = $add . BR . 'ERROR writing: ' . $logName; $response->status = 0; } $response->console = htmlentities($results); echo json_encode($response); jexit(); }