[prev in list] [next in list] [prev in thread] [next in thread]
List: pear-cvs
Subject: [PEAR-CVS] cvs: pear /PHPUnit/Runner BaseTestRunner.php
From: "Sebastian Bergmann" <sebastian () php ! net>
Date: 2003-07-29 6:56:05
[Download RAW message or body]
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()
--
PEAR CVS Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic