Esempio n. 1
0
 /**
  * Executes the tests depending on our settings
  *
  * @return void
  * @access private
  */
 public function __run()
 {
     $Reporter = new CakeXmlReporter('utf-8', array('app' => $this->Manager->appTest, 'plugin' => $this->Manager->pluginTest, 'group' => $this->type === 'group', 'codeCoverage' => $this->doCoverage));
     if ($this->doCoverage) {
         if (!extension_loaded('xdebug')) {
             $this->out(__('You must install Xdebug to use the CakePHP(tm) Code Coverage Analyzation. Download it from http://www.xdebug.org/docs/install', true));
             $this->_stop(0);
         }
     }
     ob_start();
     try {
         if ($this->type == 'all') {
             $result = $this->Manager->runAllTests($Reporter);
         } else {
             if ($this->type == 'group') {
                 $ucFirstGroup = ucfirst($this->file);
                 if ($this->doCoverage) {
                     require_once CAKE . 'tests' . DS . 'lib' . DS . 'code_coverage_manager.php';
                     CodeCoverageManager::init($ucFirstGroup, $Reporter);
                     CodeCoverageManager::start();
                 }
                 $result = $this->Manager->runGroupTest($ucFirstGroup, $Reporter);
             } else {
                 $folder = $folder = $this->__findFolderByCategory($this->category);
                 $case = $this->__getFileName($folder, $this->isPluginTest);
                 if ($this->doCoverage) {
                     require_once CAKE . 'tests' . DS . 'lib' . DS . 'code_coverage_manager.php';
                     CodeCoverageManager::init($case, $Reporter);
                     CodeCoverageManager::start();
                 }
                 $result = $this->Manager->runTestCase($case, $Reporter);
             }
         }
     } catch (Exception $e) {
         ob_get_clean();
         $this->out('Tests failed to run. ' . $e->getMessage());
         $this->_stop(1);
     }
     $xml = ob_get_clean();
     $xmlD = new DOMDocument();
     $xmlD->loadXML($xml);
     $xslt = new XSLTProcessor();
     $XSL = new DOMDocument();
     $XSL->load(dirname(__FILE__) . DS . 'xsl' . DS . 'to-junit.xsl');
     $xslt->importStylesheet($XSL);
     $out = $xslt->transformToXML($xmlD);
     $time = time();
     file_put_contents(ROOT . DS . "build" . DS . "logs" . DS . "junit-{$time}.xml", $out);
     echo "Done.\n";
 }
 /**
  * Runs a test case file.
  *
  * @return void
  */
 function _runTestCase()
 {
     $Reporter =& CakeTestSuiteDispatcher::getReporter();
     if ($this->params['codeCoverage']) {
         CodeCoverageManager::init($this->params['case'], $Reporter);
     }
     $this->Manager->runTestCase($this->params['case'], $Reporter);
 }
Esempio n. 3
0
 /**
  * Executes the tests depending on our settings
  *
  * @return void
  * @access private
  */
 function __run()
 {
     $Reporter = new CakeCliReporter('utf-8', array('app' => $this->Manager->appTest, 'plugin' => $this->Manager->pluginTest, 'group' => $this->type === 'group', 'codeCoverage' => $this->doCoverage));
     if ($this->type == 'all') {
         return $this->Manager->runAllTests($Reporter);
     }
     if ($this->doCoverage) {
         if (!extension_loaded('xdebug')) {
             $this->out(__('You must install Xdebug to use the CakePHP(tm) Code Coverage Analyzation. Download it from http://www.xdebug.org/docs/install', true));
             $this->_stop(0);
         }
     }
     if ($this->type == 'group') {
         $ucFirstGroup = ucfirst($this->file);
         if ($this->doCoverage) {
             require_once CAKE . 'tests' . DS . 'lib' . DS . 'code_coverage_manager.php';
             CodeCoverageManager::init($ucFirstGroup, $Reporter);
             CodeCoverageManager::start();
         }
         $result = $this->Manager->runGroupTest($ucFirstGroup, $Reporter);
         return $result;
     }
     $folder = $folder = $this->__findFolderByCategory($this->category);
     $case = $this->__getFileName($folder, $this->isPluginTest);
     if ($this->doCoverage) {
         require_once CAKE . 'tests' . DS . 'lib' . DS . 'code_coverage_manager.php';
         CodeCoverageManager::init($case, $Reporter);
         CodeCoverageManager::start();
     }
     $result = $this->Manager->runTestCase($case, $Reporter);
     return $result;
 }
 /**
  * Test that test cases don't cause errors
  *
  * @return void
  */
 function testNoTestCaseSuppliedNoErrors()
 {
     if ($this->skipIf(PHP_SAPI == 'cli', 'Is cli, cannot run this test %s')) {
         return;
     }
     $reporter =& new CakeHtmlReporter(null, array('group' => false, 'app' => false, 'plugin' => false));
     $path = LIBS;
     if (strpos(LIBS, ROOT) === false) {
         $path = ROOT . DS . LIBS;
     }
     App::import('Core', 'Folder');
     $folder = new Folder();
     $folder->cd($path);
     $contents = $folder->read();
     $contents[1] = array_filter($contents[1], array(&$this, '_basenameFilter'));
     foreach ($contents[1] as $file) {
         CodeCoverageManager::init('libs' . DS . $file, $reporter);
         CodeCoverageManager::report(false);
         $this->assertNoErrors('libs' . DS . $file);
     }
 }