public function executeRun()
 {
     set_time_limit(0);
     $buffer = tempnam(sys_get_temp_dir(), 'phpunit');
     $listener = new PHPUnit_Util_Log_JSON($buffer);
     $testResult = new PHPUnit_Framework_TestResult();
     $testResult->addListener($listener);
     $path = str_replace('-', '/', $this->getRequestParameter('test'));
     $loader = new sfPhpunitProjectTestLoader($path);
     $loader->load();
     $loader->suite()->run($testResult);
     $result = '[' . str_replace('}{', '},{', file_get_contents($buffer)) . ']';
     $tests = array();
     foreach (json_decode($result) as $test) {
         if ('suiteStart' == $test->event) {
             continue;
         }
         if (!isset($tests[$test->suite])) {
             $tests[$test->suite]['methods'] = array();
             $tests[$test->suite]['status'] = 'pass';
         }
         $tests[$test->suite]['methods'][] = $test;
         if ('pass' != $test->status) {
             $tests[$test->suite]['status'] = 'fail';
         }
     }
     $this->result = $testResult;
     $this->tests = $tests;
     $this->path = $path;
 }
 protected function _initFixturesDirs(PHPUnit_Framework_TestSuite $suite = null)
 {
     if (!$this->_isAllowed('test_fixture_dirs')) {
         return;
     }
     if (null === $suite) {
         $suite = sfPhpunitProjectTestLoader::factory()->suite();
     }
     foreach ($suite->tests() as $test) {
         //don't create fixtures directories for default created suite.
         if ('sfBasePhpunitTestSuite' === get_class($test)) {
             $this->_initFixturesDirs($test);
             continue;
         }
         if ($test instanceof sfPhpunitFixtureAggregator) {
             $this->_createDir($test->getCommonFixtureDir());
             $this->_createDir($test->getPackageFixtureDir());
             $this->_createDir($test->getOwnFixtureDir());
         }
         if ($test instanceof PHPUnit_Framework_TestSuite) {
             $this->_initFixturesDirs($test);
         }
     }
 }
 protected function handleProjectTests($suite)
 {
     if ($this->options['only-plugins'] || $this->options['only-plugin']) {
         return;
     }
     $suite->addTestSuite(sfPhpunitProjectTestLoader::factory($this->arguments['path'])->suite());
 }