PHPUnit2
[ class tree: PHPUnit2 ] [ index: PHPUnit2 ] [ all elements ]

Source for file BaseTestRunner.php

Documentation is available at BaseTestRunner.php

  1. <?php
  2. //
  3. // +------------------------------------------------------------------------+
  4. // | PEAR :: PHPUnit2                                                       |
  5. // +------------------------------------------------------------------------+
  6. // | Copyright (c) 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de>. |
  7. // +------------------------------------------------------------------------+
  8. // | This source file is subject to version 3.00 of the PHP License,        |
  9. // | that is available at http://www.php.net/license/3_0.txt.               |
  10. // | If you did not receive a copy of the PHP license and are unable to     |
  11. // | obtain it through the world-wide-web, please send a note to            |
  12. // | license@php.net so we can mail you a copy immediately.                 |
  13. // +------------------------------------------------------------------------+
  14. //
  15. // $Id: BaseTestRunner.php,v 1.5.2.2 2004/09/27 07:54:06 sebastian Exp $
  16. //
  17.  
  18. require_once 'PHPUnit2/Framework/AssertionFailedError.php';
  19. require_once 'PHPUnit2/Framework/TestListener.php';
  20. require_once 'PHPUnit2/Framework/TestSuite.php';
  21. require_once 'PHPUnit2/Runner/StandardTestSuiteLoader.php';
  22. require_once 'PHPUnit2/Runner/TestRunListener.php';
  23.  
  24. /**
  25.  * Base class for all test runners.
  26.  *
  27.  * @author      Sebastian Bergmann <sb@sebastian-bergmann.de>
  28.  * @copyright   Copyright &copy; 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de>
  29.  * @license     http://www.php.net/license/3_0.txt The PHP License, Version 3.0
  30.  * @category    PHP
  31.  * @package     PHPUnit2
  32.  * @subpackage  Runner
  33.  * @abstract
  34.  */
  35. abstract class PHPUnit2_Runner_BaseTestRunner implements PHPUnit2_Framework_TestListener {
  36.     // {{{ Constants
  37.  
  38.     const SUITE_METHODNAME = 'suite';
  39.  
  40.     // }}}
  41.     // {{{ public function addError(PHPUnit2_Framework_Test $test, Exception $e)
  42.  
  43.     /**
  44.     * An error occurred.
  45.     *
  46.     * @param  PHPUnit2_Framework_Test $test 
  47.     * @param  Exception               $e 
  48.     * @access public
  49.     */
  50.     public function addError(PHPUnit2_Framework_Test $testException $e{
  51.         $this->testFailed(PHPUnit2_Runner_TestRunListener::STATUS_ERROR$test$e);
  52.     }
  53.  
  54.     // }}}
  55.     // {{{ public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e)
  56.  
  57.     /**
  58.     * A failure occurred.
  59.     *
  60.     * @param  PHPUnit2_Framework_Test                 $test 
  61.     * @param  PHPUnit2_Framework_AssertionFailedError $e 
  62.     * @access public
  63.     */
  64.     public function addFailure(PHPUnit2_Framework_Test $testPHPUnit2_Framework_AssertionFailedError $e{
  65.         $this->testFailed(PHPUnit2_Runner_TestRunListener::STATUS_FAILURE$test$e);
  66.     }
  67.  
  68.     // }}}
  69.     // {{{ public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e)
  70.  
  71.     /**
  72.     * Incomplete test.
  73.     *
  74.     * @param  PHPUnit2_Framework_Test $test 
  75.     * @param  Exception               $e 
  76.     * @access public
  77.     */
  78.     public function addIncompleteTest(PHPUnit2_Framework_Test $testException $e{
  79.         $this->testFailed(PHPUnit2_Runner_TestRunListener::STATUS_INCOMPLETE$test$e);
  80.     }
  81.  
  82.     // }}}
  83.     // {{{ public function endTest(PHPUnit2_Framework_Test $test)
  84.  
  85.     /**
  86.     * A test ended.
  87.     *
  88.     * @param  PHPUnit2_Framework_Test  $test 
  89.     * @access public
  90.     */
  91.     public function endTest(PHPUnit2_Framework_Test $test{
  92.         $this->testEnded($test->getName());
  93.     }
  94.  
  95.     // }}}
  96.     // {{{ public function getLoader()
  97.  
  98.     /**
  99.     * Returns the loader to be used.
  100.     *
  101.     * @return PHPUnit2_Runner_TestSuiteLoader 
  102.     * @access protected
  103.     */
  104.     public function getLoader({
  105.         return new PHPUnit2_Runner_StandardTestSuiteLoader;
  106.     }
  107.  
  108.     // }}}
  109.     // {{{ public function getTest($suiteClassName)
  110.  
  111.     /**
  112.     * Returns the Test corresponding to the given suite.
  113.     * This is a template method, subclasses override
  114.     * the runFailed() and clearStatus() methods.
  115.     *
  116.     * @param  string  $suiteClassName 
  117.     * @return PHPUnit2_Framework_Test 
  118.     * @access public
  119.     */
  120.     public function getTest($suiteClassName{
  121.         try {
  122.             $testClass $this->loadSuiteClass($suiteClassName);
  123.         }
  124.  
  125.         catch (Exception $e{
  126.             $this->runFailed($e->getMessage());
  127.             return null;
  128.         }
  129.  
  130.         try {
  131.             $suiteMethod $testClass->getMethod(self::SUITE_METHODNAME);
  132.  
  133.             if (!$suiteMethod->isStatic()) {
  134.                 $this->runFailed(
  135.                   'suite() method must be static.'
  136.                 );
  137.  
  138.                 return null;
  139.             }
  140.  
  141.             try {
  142.                 $test $suiteMethod->invoke(NULL);
  143.             }
  144.  
  145.             catch (ReflectionException $e{
  146.                 $this->runFailed(
  147.                   sprintf(
  148.                     "Failed to invoke suite() method.\n%s",
  149.  
  150.                     $e->getMessage()
  151.                   )
  152.                 );
  153.  
  154.                 return null;
  155.             }
  156.         }
  157.  
  158.         catch (ReflectionException $e{
  159.             $test = new PHPUnit2_Framework_TestSuite($testClass);
  160.         }
  161.  
  162.         $this->clearStatus();
  163.  
  164.         return $test;
  165.     }
  166.  
  167.     // }}}
  168.     // {{{ public function startTest(PHPUnit2_Framework_Test $test)
  169.  
  170.     /**
  171.     * A test started.
  172.     *
  173.     * @param  PHPUnit2_Framework_Test  $test 
  174.     * @access public
  175.     */
  176.     public function startTest(PHPUnit2_Framework_Test $test{
  177.         $this->testStarted($test->getName());
  178.     }
  179.  
  180.     // }}}
  181.     // {{{ public abstract function testEnded($testName)
  182.  
  183.     /**
  184.     * A test ended.
  185.     *
  186.     * @param  string  $testName 
  187.     * @access public
  188.     * @abstract
  189.     */
  190.     public abstract function testEnded($testName);
  191.  
  192.     // }}}
  193.     // {{{ public abstract function testFailed($status, PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e)
  194.  
  195.     /**
  196.     * A test failed.
  197.     *
  198.     * @param  integer                                 $status 
  199.     * @param  PHPUnit2_Framework_Test                 $test 
  200.     * @param  PHPUnit2_Framework_AssertionFailedError $e 
  201.     * @access public
  202.     * @abstract
  203.     */
  204.     public abstract function testFailed($statusPHPUnit2_Framework_Test $testPHPUnit2_Framework_AssertionFailedError $e);
  205.  
  206.     // }}}
  207.     // {{{ public abstract function testStarted($testName)
  208.  
  209.     /**
  210.     * A test started.
  211.     *
  212.     * @param  string  $testName 
  213.     * @access public
  214.     * @abstract
  215.     */
  216.     public abstract function testStarted($testName);
  217.  
  218.     // }}}
  219.     // {{{ protected abstract function runFailed($message)
  220.  
  221.     /**
  222.     * Override to define how to handle a failed loading of
  223.     * a test suite.
  224.     *
  225.     * @param  string  $message 
  226.     * @access protected
  227.     * @abstract
  228.     */
  229.     protected abstract function runFailed($message);
  230.  
  231.     // }}}
  232.     // {{{ protected function loadSuiteClass($suiteClassName)
  233.  
  234.     /**
  235.     * Returns the loaded ReflectionClass for a suite name.
  236.     *
  237.     * @param  string  $suiteClassName 
  238.     * @return ReflectionClass 
  239.     * @access protected
  240.     */
  241.     protected function loadSuiteClass($suiteClassName{
  242.         return $this->getLoader()->load($suiteClassName);
  243.     }
  244.  
  245.     // }}}
  246.     // {{{ protected function clearStatus()
  247.  
  248.     /**
  249.     * Clears the status message.
  250.     *
  251.     * @access protected
  252.     */
  253.     protected function clearStatus({
  254.     }
  255.  
  256.     // }}}
  257. }
  258.  
  259. /*
  260.  * vim600:  et sw=2 ts=2 fdm=marker
  261.  * vim<600: et sw=2 ts=2
  262.  */
  263. ?>

Documentation generated on Mon, 11 Mar 2019 13:55:58 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.