示例#1
0
 /**
  * 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();
 }