cvs: pear /PHPUnit/Runner BaseTestRunner.php

From: Date: Tue, 29 Jul 2003 06:56:05 +0000
Subject: cvs: pear /PHPUnit/Runner BaseTestRunner.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-11802@lists.php.net to get a copy of this message
sebastian Tue Jul 29 02:56:05 2003 EDT Modified files: /pear/PHPUnit/Runner BaseTestRunner.php Log: Implement getLoader(), getTest(), loadSuiteClass(). Index: pear/PHPUnit/Runner/BaseTestRunner.php diff -u pear/PHPUnit/Runner/BaseTestRunner.php:1.3 pear/PHPUnit/Runner/BaseTestRunner.php:1.4 --- pear/PHPUnit/Runner/BaseTestRunner.php:1.3 Thu Jul 24 02:39:53 2003 +++ pear/PHPUnit/Runner/BaseTestRunner.php Tue Jul 29 02:56:05 2003 @@ -12,12 +12,13 @@ // | license@php.net so we can mail you a copy immediately. | // +------------------------------------------------------------------------+ // -// $Id: BaseTestRunner.php,v 1.3 2003/07/24 06:39:53 sebastian Exp $ +// $Id: BaseTestRunner.php,v 1.4 2003/07/29 06:56:05 sebastian Exp $ // require_once 'PHPUnit/Framework/AssertionFailedError.php'; require_once 'PHPUnit/Framework/TestListener.php'; require_once 'PHPUnit/Framework/TestSuite.php'; +require_once 'PHPUnit/Runner/StandardTestSuiteLoader.php'; require_once 'PHPUnit/Runner/TestRunListener.php'; /** @@ -27,6 +28,12 @@ * @author Sebastian Bergmann <sb@sebastian-bergmann.de> */ abstract class PHPUnit_Runner_BaseTestRunner implements PHPUnit_Framework_TestListener { + // {{{ Constants + + const SUITE_METHODNAME = 'suite'; + + // }}} + // {{{ public function addError(PHPUnit_Framework_Test $test, Exception $e) /** @@ -68,6 +75,19 @@ } // }}} + // {{{ public function getLoader() + + /** + * Returns the loader to be used. + * + * @return PHPUnit_Runner_TestSuiteLoader + * @access protected + */ + public function getLoader() { + return new PHPUnit_Runner_StandardTestSuiteLoader; + } + + // }}} // {{{ public function getTest($suiteClassName) /** @@ -80,9 +100,26 @@ * @access public */ public function getTest($suiteClassName) { - // XXX: FIX ME: Error Handling - include $suiteClassName . '.php'; - return new PHPUnit_Framework_TestSuite($suiteClassName); + try { + $testClass = $this->loadSuiteClass($suiteClassName); + } + + catch (Exception $e) { + $this->runFailed('XXX: FIX ME: Add error message.'); + return null; + } + + try { + $suiteMethod = $testClass->getMethod(self::SUITE_METHODNAME); + } + + catch (Exception $e) { + $this->clearStatus(); + + return new PHPUnit_Framework_TestSuite($suiteClassName, $testClass); + } + + // XXX: FIX ME: Implement suite method handling. } // }}} @@ -148,6 +185,20 @@ * @abstract */ protected abstract function runFailed($message); + + // }}} + // {{{ protected function loadSuiteClass($suiteClassName) + + /** + * Returns the loaded Reflection_Class for a suite name. + * + * @param string $suiteClassName + * @return Reflection_Class + * @access protected + */ + protected function loadSuiteClass($suiteClassName) { + return $this->getLoader()->load($suiteClassName); + } // }}} // {{{ protected function clearStatus()

« previous php.pear.cvs (#11802) next »