- Patch #291670 by dhubler, Dries: run tests by file.

merge-requests/26/head
Dries Buytaert 2008-08-18 18:52:31 +00:00
parent e2825f474b
commit ba6aa9f515
1 changed files with 23 additions and 4 deletions

View File

@ -114,14 +114,17 @@ All arguments are long options.
--concurrency [num]
Run tests in parallel, up to [num] tests at a time.
This requires the Process Control Extension (PCNTL) to be compiled in PHP,
not supported under Windows.
Run tests in parallel, up to [num] tests at a time. This requires
the Process Control Extension (PCNTL) to be compiled in PHP, not
supported under Windows.
--all Run all available tests.
--class Run tests identified by specific class names, instead of group names.
--file Run tests identifiled by specific file names, instead of group names.
Specify the path and the extension (i.e. 'modules/user/user.test').
--color Output the rusults with color highlighting.
--verbose Output detailed assertion messages in addition to summary.
@ -160,6 +163,7 @@ function simpletest_script_parse_args() {
'concurrency' => 1,
'all' => FALSE,
'class' => FALSE,
'file' => FALSE,
'color' => FALSE,
'verbose' => FALSE,
'test_names' => array(),
@ -353,7 +357,7 @@ function simpletest_script_get_test_list() {
$test_list = array_keys($all_tests);
}
else {
if ($args['class_names']) {
if ($args['class']) {
// Check for valid class names.
foreach ($args['test_names'] as $class_name) {
if (isset($all_tests[$class_name])) {
@ -361,6 +365,21 @@ function simpletest_script_get_test_list() {
}
}
}
else if ($args['file']) {
$files = array();
foreach ($args['test_names'] as $file) {
$files[realpath($file)] = 1;
}
// Check for valid class names.
foreach ($all_tests as $class_name => $instance) {
$refclass = new ReflectionClass($class_name);
$file = $refclass->getFileName();
if (isset($files[$file])) {
$test_list[] = $class_name;
}
}
}
else {
// Check for valid group names and get all valid classes in group.
foreach ($args['test_names'] as $group_name) {