Пример #1
0
 public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array())
 {
     $handlesArguments = $arguments;
     $this->handleConfiguration($handlesArguments);
     $this->_retryOnError = $handlesArguments['retryOnError'];
     if (!$handlesArguments['noProgress'] && file_exists('/www/testtimes')) {
         $expectedTimes = array();
         $unknownTimes = 0;
         $tests = $suite->getFilteredTests($handlesArguments['filter'], $handlesArguments['groups'], $handlesArguments['excludeGroups']);
         foreach ($tests as $test) {
             $app = Kwf_Registry::get('config')->application->id;
             $f = "/www/testtimes/{$app}/{$test->toString()}";
             if (isset($expectedTimes[$test->toString()])) {
                 throw new Kwf_Exception("same test exists twice?!");
             }
             if (file_exists($f)) {
                 $expectedTimes[$test->toString()] = (double) file_get_contents($f);
             } else {
                 if ($test instanceof PHPUnit_Extensions_SeleniumTestCase) {
                     $expectedTimes[$test->toString()] = 15;
                 } else {
                     $expectedTimes[$test->toString()] = 1;
                 }
                 $unknownTimes++;
             }
         }
         if (!$expectedTimes || $unknownTimes / count($expectedTimes) > 0.2) {
             $expectedTimes = array();
         }
         $printer = new Kwf_Test_ProgressResultPrinter($expectedTimes, null, $handlesArguments['verbose'], true);
         $this->setPrinter($printer);
     } else {
         if ($handlesArguments['verbose']) {
             $printer = new Kwf_Test_VerboseResultPrinter(null, true);
             $this->setPrinter($printer);
         }
     }
     return parent::doRun($suite, $arguments);
 }