diff options
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php')
-rw-r--r-- | poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php new file mode 100644 index 0000000..e2f39cd --- /dev/null +++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/TestSuite/CakeTestRunner.php @@ -0,0 +1,103 @@ +<?php +/** + * TestRunner for CakePHP Test suite. + * + * PHP 5 + * + * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) + * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://cakephp.org CakePHP(tm) Project + * @since CakePHP(tm) v 2.0 + * @license MIT License (http://www.opensource.org/licenses/mit-license.php) + */ +require_once 'PHPUnit/TextUI/TestRunner.php'; + +/** + * A custom test runner for Cake's use of PHPUnit. + * + * @package Cake.TestSuite + */ +class CakeTestRunner extends PHPUnit_TextUI_TestRunner { + +/** + * Lets us pass in some options needed for cake's webrunner. + * + * @return void + */ + public function __construct($loader, $params) { + parent::__construct($loader); + $this->_params = $params; + } + +/** + * Actually run a suite of tests. Cake initializes fixtures here using the chosen fixture manager + * + * @param PHPUnit_Framework_Test $suite + * @param array $arguments + * @return void + */ + public function doRun(PHPUnit_Framework_Test $suite, array $arguments = array()) { + if (isset($arguments['printer'])) { + self::$versionStringPrinted = true; + } + + $fixture = $this->_getFixtureManager($arguments); + foreach ($suite->getIterator() as $test) { + if ($test instanceof CakeTestCase) { + $fixture->fixturize($test); + $test->fixtureManager = $fixture; + } + } + + $return = parent::doRun($suite, $arguments); + $fixture->shutdown(); + return $return; + } + +// @codingStandardsIgnoreStart PHPUnit overrides don't match CakePHP +/** + * Create the test result and splice on our code coverage reports. + * + * @return PHPUnit_Framework_TestResult + */ + protected function createTestResult() { + $result = new PHPUnit_Framework_TestResult; + if (!empty($this->_params['codeCoverage'])) { + if (method_exists($result, 'collectCodeCoverageInformation')) { + $result->collectCodeCoverageInformation(true); + } + if (method_exists($result, 'setCodeCoverage')) { + $result->setCodeCoverage(new PHP_CodeCoverage()); + } + } + return $result; + } +// @codingStandardsIgnoreEnd + +/** + * Get the fixture manager class specified or use the default one. + * + * @return instance of a fixture manager. + * @throws RuntimeException When fixture manager class cannot be loaded. + */ + protected function _getFixtureManager($arguments) { + if (isset($arguments['fixtureManager'])) { + App::uses($arguments['fixtureManager'], 'TestSuite'); + if (class_exists($arguments['fixtureManager'])) { + return new $arguments['fixtureManager']; + } + throw new RuntimeException(__d('cake_dev', 'Could not find fixture manager %s.', $arguments['fixtureManager'])); + } + App::uses('AppFixtureManager', 'TestSuite'); + if (class_exists('AppFixtureManager')) { + return new AppFixtureManager(); + } + return new CakeFixtureManager(); + } + +} |