mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-08-05 14:40:44 -04:00
Reapply r19116:
Add support for filtering tests down to the Class::method level. Upstream ticket: http://dev.kohanaphp.com/ticket/961
This commit is contained in:
@@ -23,13 +23,14 @@ class Unit_Test_Core {
|
||||
/**
|
||||
* Sets the test path(s), runs the tests inside and stores the results.
|
||||
*
|
||||
* @param string(s) test path(s)
|
||||
* @param array test path(s)
|
||||
* @param string filter (regular expression)
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
public function __construct($extra_paths=array(), $filter=null)
|
||||
{
|
||||
// Merge possible default test path(s) from config with the rest
|
||||
$paths = array_merge(func_get_args(), Kohana::config('unit_test.paths', FALSE, FALSE));
|
||||
$paths = array_merge($extra_paths, Kohana::config('unit_test.paths', FALSE, FALSE));
|
||||
|
||||
// Normalize all test paths
|
||||
foreach ($paths as $path)
|
||||
@@ -121,6 +122,10 @@ class Unit_Test_Core {
|
||||
if ( ! $method->isPublic() OR $method->isStatic() OR $method->getNumberOfRequiredParameters() !== 0)
|
||||
continue;
|
||||
|
||||
if ($filter && !preg_match("/$filter/i", "$class::{$method->getName()}")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Test methods should be suffixed with "_test"
|
||||
if (substr($method_name = $method->getName(), -5) !== '_test')
|
||||
continue;
|
||||
@@ -183,6 +188,11 @@ class Unit_Test_Core {
|
||||
// Cleanup
|
||||
unset($object);
|
||||
}
|
||||
|
||||
if ($filter && $this->stats[$class]['total'] == 0) {
|
||||
unset($this->results[$class]);
|
||||
unset($this->stats[$class]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user