lithium\test\Dispatcher::run()
Runs a test group or a specific test file based on the passed parameters.
Parameters
-
string
$group
If set, this test group is run. If not set, a group test may also be run by passing the 'group' option to the $options parameter.
-
array
$options
Options array for the test run. Valid options are:
'case'
: The fully namespaced test case to be run.'group'
: The fully namespaced test group to be run.'filters'
: An array of filters that the test output should be run through.'format'
: The format of the template to use, defaults to'txt'
.'reporter'
: The reporter to use.
Returns
arrayA compact array of the title, an array of the results, as well as an additional array of the results after the $options['filters'] have been applied.
Filter
This method can be filtered.
Source
public static function run($group = null, array $options = []) {
$defaults = [
'title' => $group,
'filters' => [],
'format' => 'txt',
'reporter' => null
];
$options += $defaults;
$isCase = is_string($group) && preg_match('/Test$/', $group);
$items = ($isCase) ? [new $group()] : (array) $group;
$options['filters'] = array_map(function($v) {
return (array) $v;
}, Set::normalize($options['filters']));
$group = static::_group($items);
$report = static::_report($group, $options);
return Filters::run(get_called_class(), __FUNCTION__, compact('report'), function($params) {
$environment = Environment::get();
Environment::set('test');
$params['report']->run();
Environment::set($environment);
return $params['report'];
});
}