/home/desid573/public_html/family/pdd/lib/Cake/TestSuite
Edit: /home/desid573/public_html/family/pdd/lib/Cake/TestSuite/CakeTestSuiteCommand.php (4371B)
$loader));
}
$this->arguments['loader'] = $loader;
$this->arguments['test'] = $params['case'];
$this->arguments['testFile'] = $params;
$this->_params = $params;
$this->longOptions['fixture='] = 'handleFixture';
$this->longOptions['output='] = 'handleReporter';
}
/**
* Ugly hack to get around PHPUnit having a hard coded class name for the Runner. :(
*
* @param array $argv The command arguments
* @param bool $exit The exit mode.
* @return void
*/
public function run(array $argv, $exit = true) {
$this->handleArguments($argv);
$runner = $this->getRunner($this->arguments['loader']);
if (is_object($this->arguments['test']) &&
$this->arguments['test'] instanceof PHPUnit_Framework_Test) {
$suite = $this->arguments['test'];
} else {
$suite = $runner->getTest(
$this->arguments['test'],
$this->arguments['testFile']
);
}
if ($this->arguments['listGroups']) {
PHPUnit_TextUI_TestRunner::printVersionString();
print "Available test group(s):\n";
$groups = $suite->getGroups();
sort($groups);
foreach ($groups as $group) {
print " - $group\n";
}
exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
}
unset($this->arguments['test']);
unset($this->arguments['testFile']);
try {
$result = $runner->doRun($suite, $this->arguments);
} catch (PHPUnit_Framework_Exception $e) {
print $e->getMessage() . "\n";
}
if ($exit) {
if (isset($result) && $result->wasSuccessful()) {
exit(PHPUnit_TextUI_TestRunner::SUCCESS_EXIT);
} elseif (!isset($result) || $result->errorCount() > 0) {
exit(PHPUnit_TextUI_TestRunner::EXCEPTION_EXIT);
}
exit(PHPUnit_TextUI_TestRunner::FAILURE_EXIT);
}
}
/**
* Create a runner for the command.
*
* @param mixed $loader The loader to be used for the test run.
* @return CakeTestRunner
*/
public function getRunner($loader) {
return new CakeTestRunner($loader, $this->_params);
}
/**
* Handler for customizing the FixtureManager class/
*
* @param string $class Name of the class that will be the fixture manager
* @return void
*/
public function handleFixture($class) {
$this->arguments['fixtureManager'] = $class;
}
/**
* Handles output flag used to change printing on webrunner.
*
* @param string $reporter The reporter class to use.
* @return void
*/
public function handleReporter($reporter) {
$object = null;
$reporter = ucwords($reporter);
$coreClass = 'Cake' . $reporter . 'Reporter';
App::uses($coreClass, 'TestSuite/Reporter');
$appClass = $reporter . 'Reporter';
App::uses($appClass, 'TestSuite/Reporter');
if (!class_exists($appClass)) {
$object = new $coreClass(null, $this->_params);
} else {
$object = new $appClass(null, $this->_params);
}
return $this->arguments['printer'] = $object;
}
}