[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