Skip to content
Snippets Groups Projects
Commit ba6aa9f5 authored by Dries Buytaert's avatar Dries Buytaert
Browse files

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

parent e2825f47
2 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!789Issue #3210310: Adjust Database API to remove deprecated Drupal 9 code in Drupal 10
...@@ -114,13 +114,16 @@ function simpletest_script_help() { ...@@ -114,13 +114,16 @@ function simpletest_script_help() {
--concurrency [num] --concurrency [num]
Run tests in parallel, up to [num] tests at a time. Run tests in parallel, up to [num] tests at a time. This requires
This requires the Process Control Extension (PCNTL) to be compiled in PHP, the Process Control Extension (PCNTL) to be compiled in PHP, not
not supported under Windows. supported under Windows.
--all Run all available tests. --all Run all available tests.
--class Run tests identified by specific class names, instead of group names. --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. --color Output the rusults with color highlighting.
...@@ -160,6 +163,7 @@ function simpletest_script_parse_args() { ...@@ -160,6 +163,7 @@ function simpletest_script_parse_args() {
'concurrency' => 1, 'concurrency' => 1,
'all' => FALSE, 'all' => FALSE,
'class' => FALSE, 'class' => FALSE,
'file' => FALSE,
'color' => FALSE, 'color' => FALSE,
'verbose' => FALSE, 'verbose' => FALSE,
'test_names' => array(), 'test_names' => array(),
...@@ -353,7 +357,7 @@ function simpletest_script_get_test_list() { ...@@ -353,7 +357,7 @@ function simpletest_script_get_test_list() {
$test_list = array_keys($all_tests); $test_list = array_keys($all_tests);
} }
else { else {
if ($args['class_names']) { if ($args['class']) {
// Check for valid class names. // Check for valid class names.
foreach ($args['test_names'] as $class_name) { foreach ($args['test_names'] as $class_name) {
if (isset($all_tests[$class_name])) { if (isset($all_tests[$class_name])) {
...@@ -361,6 +365,21 @@ function simpletest_script_get_test_list() { ...@@ -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 { else {
// Check for valid group names and get all valid classes in group. // Check for valid group names and get all valid classes in group.
foreach ($args['test_names'] as $group_name) { foreach ($args['test_names'] as $group_name) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment