Doing some tweaks to CakeTestSuiteDispatcher to make CLI testing easier.

This commit is contained in:
mark_story 2010-06-26 13:48:11 -04:00
parent 3ebbaf106c
commit 0baab93929

View file

@ -68,6 +68,13 @@ class CakeTestSuiteDispatcher {
*/
protected $_baseDir;
/**
* boolean to set auto parsing of params.
*
* @var boolean
*/
protected $_paramsParsed = false;
/**
* reporter instance used for the request
*
@ -96,13 +103,14 @@ class CakeTestSuiteDispatcher {
$this->_parseParams();
if ($this->params['case']) {
$this->_runTestCase();
$value = $this->_runTestCase();
} else {
$this->_testCaseList();
$value = $this->_testCaseList();
}
$output = ob_get_clean();
echo $output;
return $value;
}
/**
@ -202,12 +210,24 @@ class CakeTestSuiteDispatcher {
return self::$_Reporter;
}
/**
* Sets the params, calling this will bypass the auto parameter parsing.
*
* @param array $params Array of parameters for the dispatcher
* @return void
*/
public function setParams($params) {
$this->params = $params;
$this->_paramsParsed = true;
}
/**
* Parse url params into a 'request'
*
* @return void
*/
function _parseParams() {
if (!$this->_paramsParsed) {
if (!isset($_SERVER['SERVER_NAME'])) {
$_SERVER['SERVER_NAME'] = '';
}
@ -220,6 +240,7 @@ class CakeTestSuiteDispatcher {
$this->params['codeCoverage'] = true;
$this->_checkXdebug();
}
}
$this->params['baseUrl'] = $this->_baseUrl;
$this->params['baseDir'] = $this->_baseDir;
$this->getManager();
@ -232,6 +253,6 @@ class CakeTestSuiteDispatcher {
*/
function _runTestCase() {
$Reporter = CakeTestSuiteDispatcher::getReporter();
$this->Manager->runTestCase($this->params['case'], $Reporter, $this->params['codeCoverage']);
return $this->Manager->runTestCase($this->params['case'], $Reporter, $this->params['codeCoverage']);
}
}