/** * Run this test suite * * @return unittest.TestResult */ public function run() { $this->notifyListeners('testRunStarted', array($this)); $result = new TestResult(); foreach ($this->order as $classname => $tests) { $class = XPClass::forName($classname); // Run all tests in this class try { $this->beforeClass($class); } catch (PrerequisitesNotMetError $e) { foreach ($tests as $i) { $this->notifyListeners('testSkipped', array($result->setSkipped($this->tests[$i], $e, 0.0))); } continue; } foreach ($tests as $i) { $this->runInternal($this->tests[$i], $result); } $this->afterClass($class); } $this->notifyListeners('testRunFinished', array($this, $result)); return $result; }