diff options
Diffstat (limited to 'buildscripts/PHPUnit2/TextUI/TestRunner.php')
| -rw-r--r-- | buildscripts/PHPUnit2/TextUI/TestRunner.php | 622 | 
1 files changed, 0 insertions, 622 deletions
diff --git a/buildscripts/PHPUnit2/TextUI/TestRunner.php b/buildscripts/PHPUnit2/TextUI/TestRunner.php deleted file mode 100644 index b21cfca4..00000000 --- a/buildscripts/PHPUnit2/TextUI/TestRunner.php +++ /dev/null @@ -1,622 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * PHP Version 5 - * - * Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - *   * Redistributions of source code must retain the above copyright - *     notice, this list of conditions and the following disclaimer. - *  - *   * Redistributions in binary form must reproduce the above copyright - *     notice, this list of conditions and the following disclaimer in - *     the documentation and/or other materials provided with the - *     distribution. - * - *   * Neither the name of Sebastian Bergmann nor the names of his - *     contributors may be used to endorse or promote products derived - *     from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category   Testing - * @package    PHPUnit2 - * @author     Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright  2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License - * @version    CVS: $Id: TestRunner.php,v 1.64.2.5 2005/12/17 16:04:58 sebastian Exp $ - * @link       http://pear.php.net/package/PHPUnit2 - * @since      File available since Release 2.0.0 - */ - -if (!defined('PHPUnit2_MAIN_METHOD')) { -    define('PHPUnit2_MAIN_METHOD', 'PHPUnit2_TextUI_TestRunner::main'); -} - -require_once 'PHPUnit2/Framework/TestSuite.php'; -require_once 'PHPUnit2/Runner/Version.php'; -require_once 'PHPUnit2/Runner/BaseTestRunner.php'; -require_once 'PHPUnit2/TextUI/ResultPrinter.php'; -require_once 'PHPUnit2/Util/Fileloader.php'; - -require_once 'Console/Getopt.php'; -require_once 'Benchmark/Timer.php'; - -/** - * A TestRunner for the Command Line Interface (CLI) - * PHP SAPI Module. - * - * @category   Testing - * @package    PHPUnit2 - * @author     Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright  2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license    http://www.opensource.org/licenses/bsd-license.php  BSD License - * @version    Release: @package_version@ - * @link       http://pear.php.net/package/PHPUnit2 - * @since      Class available since Release 2.0.0 - */ -class PHPUnit2_TextUI_TestRunner extends PHPUnit2_Runner_BaseTestRunner { -    const SUCCESS_EXIT   = 0; -    const FAILURE_EXIT   = 1; -    const EXCEPTION_EXIT = 2; - -    /** -     * @var    PHPUnit2_Runner_TestSuiteLoader -     * @access private -     */ -    private $loader = NULL; - -    /** -     * @var    PHPUnit2_TextUI_ResultPrinter -     * @access private -     */ -    private $printer = NULL; - -    /** -     * @var    boolean -     * @access private -     * @static -     */ -    private static $versionStringPrinted = FALSE; - -    /** -     * @access public -     * @static -     */ -    public static function main() { -        $aTestRunner = new PHPUnit2_TextUI_TestRunner; - -        try { -            $result = $aTestRunner->start($_SERVER['argv']); - -            if (!$result->wasSuccessful()) { -                exit(self::FAILURE_EXIT); -            } - -            exit(self::SUCCESS_EXIT); -        } - -        catch (Exception $e) { -            self::printVersionString(); -            print $e->getMessage(); -            exit(self::EXCEPTION_EXIT); -        } -    } - -    /** -     * @param  array $arguments -     * @throws Exception -     * @access protected -     */ -    protected function start($arguments) { -        $coverageDataFile = FALSE; -        $coverageHTMLFile = FALSE; -        $coverageTextFile = FALSE; -        $testdoxHTMLFile  = FALSE; -        $testdoxTextFile  = FALSE; -        $xmlLogfile       = FALSE; -        $wait             = FALSE; - -        $possibleOptions = array( -          'help', -          'loader=', -          'log-xml=', -          'skeleton', -          'testdox-html=', -          'testdox-text=', -          'version', -          'wait' -        ); - -        if (extension_loaded('xdebug')) { -            $possibleOptions[] = 'coverage-data='; -            $possibleOptions[] = 'coverage-html='; -            $possibleOptions[] = 'coverage-text='; -        } - -        $options = Console_Getopt::getopt( -          $arguments, -          '', -          $possibleOptions -        ); - -        if (PEAR::isError($options)) { -            $this->showError($options->getMessage()); -        } - -        $test     = isset($options[1][0]) ? $options[1][0] : FALSE; -        $testFile = isset($options[1][1]) ? $options[1][1] : $test . '.php'; - -        foreach ($options[0] as $option) { -            switch ($option[0]) { -                case '--coverage-data': { -                    $coverageDataFile = $option[1]; -                } -                break; - -                case '--coverage-html': { -                    $coverageHTMLFile = $option[1]; -                } -                break; - -                case '--coverage-text': { -                    $coverageTextFile = $option[1]; -                } -                break; - -                case '--help': { -                    $this->showHelp(); -                    exit(self::SUCCESS_EXIT); -                } -                break; - -                case '--testdox-html': { -                    $testdoxHTMLFile = $option[1]; -                } -                break; - -                case '--testdox-text': { -                    $testdoxTextFile = $option[1]; -                } -                break; - -                case '--loader': { -                    if (!class_exists($option[1])) { -                        PHPUnit2_Util_Fileloader::checkAndLoad( -                          str_replace('_', '/', $option[1]) . '.php' -                        ); -                    } - -                    if (class_exists($option[1])) { -                        $class = new ReflectionClass($option[1]); - -                        if ($class->implementsInterface('PHPUnit2_Runner_TestSuiteLoader') && -                            $class->isInstantiable()) { -                            $this->loader = $class->newInstance(); -                        } -                    } - -                    if ($this->loader === NULL) { -                        $this->showError( -                          sprintf( -                            'Could not use "%s" as loader.', - -                            $option[1] -                          ) -                        ); -                    } -                } -                break; - -                case '--log-xml': { -                    $xmlLogfile = $option[1]; -                } -                break; - -                case '--skeleton': { -                    if ($test !== FALSE) { -                        self::printVersionString(); - -                        try { -                            require_once 'PHPUnit2/Util/Skeleton.php'; - -                            $skeleton = new PHPUnit2_Util_Skeleton($test, $testFile); -                            $skeleton->write(); -                        } - -                        catch (Exception $e) { -                            print $e->getMessage() . "\n"; - -                            printf( -                              "Could not write test class skeleton for %s to %s.\n", -                              $test, -                              $test . 'Test.php' -                            ); - -                            exit(self::FAILURE_EXIT); -                        } - -                        printf( -                          "Wrote test class skeleton for %s to %s.\n", -                          $test, -                          $test . 'Test.php' -                        ); - -                        exit(self::SUCCESS_EXIT); -                    } -                } -                break; - -                case '--version': { -                    self::printVersionString(); -                    exit(self::SUCCESS_EXIT); -                } -                break; - -                case '--wait': { -                    $wait = TRUE; -                } -                break; -            } -        } - -        if ($test === FALSE) { -            $this->showHelp(); - -            exit(self::SUCCESS_EXIT); -        } - -        try { -            return $this->doRun( -              $this->getTest($test, $testFile), -              $coverageDataFile, -              $coverageHTMLFile, -              $coverageTextFile, -              $testdoxHTMLFile, -              $testdoxTextFile, -              $xmlLogfile, -              $wait -            ); -        } - -        catch (Exception $e) { -            throw new Exception( -              'Could not create and run test suite: ' . $e->getMessage() -            ); -        } -    } - -    /** -     * @param  mixed   $test -     * @param  mixed   $coverageDataFile -     * @param  mixed   $testdoxHTMLFile -     * @param  mixed   $testdoxTextFile -     * @param  mixed   $xmlLogfile -     * @param  boolean $wait -     * @access public -     * @static -     */ -    public static function run($test, $coverageDataFile = FALSE, $coverageHTMLFile = FALSE, $coverageTextFile = FALSE, $testdoxHTMLFile = FALSE, $testdoxTextFile = FALSE, $xmlLogfile = FALSE, $wait = FALSE) { -        if ($test instanceof ReflectionClass) { -            $test = new PHPUnit2_Framework_TestSuite($test); -        } - -        if ($test instanceof PHPUnit2_Framework_Test) { -            $aTestRunner = new PHPUnit2_TextUI_TestRunner; - -            return $aTestRunner->doRun( -              $test, -              $coverageDataFile, -              $coverageHTMLFile, -              $coverageTextFile, -              $testdoxHTMLFile, -              $testdoxTextFile, -              $xmlLogfile, -              $wait -            ); -        } -    } - -    /** -     * Runs a single test and waits until the user types RETURN. -     * -     * @param  PHPUnit2_Framework_Test $suite -     * @access public -     * @static -     */ -    public static function runAndWait(PHPUnit2_Framework_Test $suite) { -        $aTestRunner = new PHPUnit2_TextUI_TestRunner; - -        $aTestRunner->doRun( -          $suite, -          FALSE, -          FALSE, -          FALSE, -          FALSE, -          FALSE, -          FALSE, -          TRUE -        ); -    } - -    /** -     * @return PHPUnit2_Framework_TestResult -     * @access protected -     */ -    protected function createTestResult() { -        return new PHPUnit2_Framework_TestResult; -    } - -    /** -     * @param  PHPUnit2_Framework_Test $suite -     * @param  mixed                   $coverageDataFile -     * @param  mixed                   $coverageHTMLFile -     * @param  mixed                   $coverageTextFile -     * @param  mixed                   $testdoxHTMLFile -     * @param  mixed                   $testdoxTextFile -     * @param  mixed                   $xmlLogfile -     * @param  boolean                 $wait -     * @return PHPUnit2_Framework_TestResult -     * @access public -     */ -    public function doRun(PHPUnit2_Framework_Test $suite, $coverageDataFile = FALSE, $coverageHTMLFile = FALSE, $coverageTextFile = FALSE, $testdoxHTMLFile = FALSE, $testdoxTextFile = FALSE, $xmlLogfile = FALSE, $wait = FALSE) { -        $result = $this->createTestResult(); -        $timer  = new Benchmark_Timer; - -        if ($this->printer === NULL) { -            $this->printer = new PHPUnit2_TextUI_ResultPrinter; -        } - -        $this->printer->write( -          PHPUnit2_Runner_Version::getVersionString() . "\n\n" -        ); - -        $result->addListener($this->printer); - -        if ($testdoxHTMLFile !== FALSE || $testdoxTextFile !== FALSE) { -            require_once 'PHPUnit2/Util/TestDox/ResultPrinter.php'; - -            if ($testdoxHTMLFile !== FALSE) { -                $result->addListener( -                  PHPUnit2_Util_TestDox_ResultPrinter::factory( -                    'HTML', -                    $testdoxHTMLFile -                  ) -                ); -            } - -            if ($testdoxTextFile !== FALSE) { -                $result->addListener( -                  PHPUnit2_Util_TestDox_ResultPrinter::factory( -                    'Text', -                    $testdoxTextFile -                  ) -                ); -            } -        } - -        if ($xmlLogfile !== FALSE) { -            require_once 'PHPUnit2/Util/Log/XML.php'; - -            $result->addListener( -              new PHPUnit2_Util_Log_XML($xmlLogfile) -            ); -        } - -        if ($coverageDataFile !== FALSE || -            $coverageHTMLFile !== FALSE || -            $coverageTextFile !== FALSE) { -            $result->collectCodeCoverageInformation(TRUE); -        } - -        $timer->start(); -        $suite->run($result); -        $timer->stop(); -        $timeElapsed = $timer->timeElapsed(); - -        $this->pause($wait); - -        $this->printer->printResult($result, $timeElapsed); - -        $this->handleCodeCoverageInformation( -          $result, -          $coverageDataFile, -          $coverageHTMLFile, -          $coverageTextFile -        ); - -        return $result; -    } - -    /** -     * Returns the loader to be used. -     * -     * @return PHPUnit2_Runner_TestSuiteLoader -     * @access public -     * @since  Method available since Release 2.2.0 -     */ -    public function getLoader() { -        if ($this->loader === NULL) { -            $this->loader = new PHPUnit2_Runner_StandardTestSuiteLoader; -        } - -        return $this->loader; -    } - -    /** -     * @param  PHPUnit2_Framework_TestResult $result -     * @param  mixed                         $coverageDataFile -     * @param  mixed                         $coverageHTMLFile -     * @param  mixed                         $coverageTextFile -     * @access protected -     * @since  Method available since Release 2.1.0 -     */ -    protected function handleCodeCoverageInformation(PHPUnit2_Framework_TestResult $result, $coverageDataFile, $coverageHTMLFile, $coverageTextFile) { -        if ($coverageDataFile !== FALSE && -            $fp = fopen($coverageDataFile, 'w')) { -            fputs($fp, serialize($result->getCodeCoverageInformation())); -            fclose($fp); -        } - -        if ($coverageHTMLFile !== FALSE || $coverageTextFile !== FALSE) { -            require_once 'PHPUnit2/Util/CodeCoverage/Renderer.php'; - -            if ($coverageHTMLFile !== FALSE) { -                $renderer = PHPUnit2_Util_CodeCoverage_Renderer::factory( -                  'HTML', -                  $result->getCodeCoverageInformation() -                ); - -                $renderer->renderToFile($coverageHTMLFile); -            } - -            if ($coverageTextFile !== FALSE) { -                $renderer = PHPUnit2_Util_CodeCoverage_Renderer::factory( -                  'Text', -                  $result->getCodeCoverageInformation() -                ); - -                $renderer->renderToFile($coverageTextFile); -            } -        } -    } - -    /** -     * @access public -     */ -    public function showError($message) { -        self::printVersionString(); -        print $message . "\n"; - -        exit(self::FAILURE_EXIT); -    } - -    /** -     * @access public -     */ -    public function showHelp() { -        self::printVersionString(); -        print "Usage: phpunit [switches] UnitTest [UnitTest.php]\n"; - -        if (extension_loaded('xdebug')) { -            print "  --coverage-data <file> Write Code Coverage data in raw format to file.\n" . -                  "  --coverage-html <file> Write Code Coverage data in HTML format to file.\n" . -                  "  --coverage-text <file> Write Code Coverage data in text format to file.\n\n"; -        } - -        print "  --testdox-html <file>  Write agile documentation in HTML format to file.\n" . -              "  --testdox-text <file>  Write agile documentation in Text format to file.\n" . -              "  --log-xml <file>       Log test progress in XML format to file.\n\n"; - -        print "  --loader <loader>      TestSuiteLoader implementation to use.\n\n" . -              "  --skeleton             Generate skeleton UnitTest class for Unit in Unit.php.\n\n" . -              "  --wait                 Waits for a keystroke after each test.\n\n" . -              "  --help                 Prints this usage information.\n" . -              "  --version              Prints the version and exits.\n"; -    } - -    /** -     * @param  boolean $wait -     * @access protected -     */ -    protected function pause($wait) { -        if (!$wait) { -            return; -        } - -        $this->printer->printWaitPrompt(); - -        fgets(STDIN); -    } - -    /** -     * @param  PHPUnit2_TextUI_ResultPrinter $resultPrinter -     * @access public -     */ -    public function setPrinter(PHPUnit2_TextUI_ResultPrinter $resultPrinter) { -        $this->printer = $resultPrinter; -    } - -    /** -     * A test started. -     * -     * @param  string  $testName -     * @access public -     */ -    public function testStarted($testName) { -    } - -    /** -     * A test ended. -     * -     * @param  string  $testName -     * @access public -     */ -    public function testEnded($testName) { -    } - -    /** -     * A test failed. -     * -     * @param  integer                                 $status -     * @param  PHPUnit2_Framework_Test                 $test -     * @param  PHPUnit2_Framework_AssertionFailedError $e -     * @access public -     */ -    public function testFailed($status, PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e) { -    } - -    /** -     * Override to define how to handle a failed loading of -     * a test suite. -     * -     * @param  string  $message -     * @access protected -     */ -    protected function runFailed($message) { -        self::printVersionString(); -        print $message; -        exit(self::FAILURE_EXIT); -    } - -    /** -     * @access private -     * @since  Method available since Release 2.2.0 -     */ -    private static function printVersionString() { -        if (!self::$versionStringPrinted) { -            print PHPUnit2_Runner_Version::getVersionString() . "\n\n"; -            self::$versionStringPrinted = TRUE; -        } -    } -} - -if (PHPUnit2_MAIN_METHOD == 'PHPUnit2_TextUI_TestRunner::main') { -    PHPUnit2_TextUI_TestRunner::main(); -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ -?>  | 
