lithium\test\Dispatcher::run()

public static method

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

array

A 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'];
		});
	}