summaryrefslogtreecommitdiff
path: root/buildscripts/PHPUnit2/TextUI/TestRunner.php
diff options
context:
space:
mode:
authorctrlaltca <>2013-01-02 14:42:24 +0000
committerctrlaltca <>2013-01-02 14:42:24 +0000
commitedf2251aca60a970e822079d23933e5b70b26571 (patch)
tree366b6688efbb03f20f47268bea57859cea673c70 /buildscripts/PHPUnit2/TextUI/TestRunner.php
parent8e5f2510bd577e15095e46afc7d0ba6808549bf8 (diff)
backported all related changes up to 3229 to branch/3.2
Diffstat (limited to 'buildscripts/PHPUnit2/TextUI/TestRunner.php')
-rw-r--r--buildscripts/PHPUnit2/TextUI/TestRunner.php622
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:
- */
-?>