3 declare(strict_types=1);
9 use PHPUnit\Runner\Filter\Factory as FilterFactory;
10 use PHPUnit\Runner\Filter\ExcludeGroupFilterIterator as GroupExcludeFilter;
33 echo
"ILIAS PHPUnit-Tests need installed dev-requirements, please install using 'composer install' in ./libs/composer \n";
37 $basedirs = array(
"Services",
"Modules");
39 foreach ($basedirs as $basedir) {
41 $dir = opendir($basedir);
43 while ($file = readdir($dir)) {
44 if ($file !=
"." && $file !=
".." && is_dir($basedir .
"/" . $file)) {
46 $basedir .
"/" . $file .
"/test/il" . $basedir . $file .
"Suite.php";
47 if (is_file($suite_path)) {
48 include_once($suite_path);
50 $name =
"il" . $basedir . $file .
"Suite";
52 echo
"Adding Suite: " .
$name .
"\n";
60 $suite = self::addTestFolderToSuite($suite);
72 $test_directories = array(
"tests");
73 while ($aux_dir = current($test_directories)) {
74 if ($handle = opendir($aux_dir)) {
75 $aux_dir .= DIRECTORY_SEPARATOR;
76 while (
false !== ($entry = readdir($handle))) {
77 if ($entry ===
'.' || $entry ===
'..') {
80 if (is_dir($aux_dir . $entry)) {
81 $test_directories[] = $aux_dir . $entry;
83 if (1 === preg_match(self::REGEX_TEST_FILENAME, $entry)) {
84 $ref_declared_classes = get_declared_classes();
85 require_once $aux_dir .
"/" . $entry;
86 $new_declared_classes = array_diff(get_declared_classes(), $ref_declared_classes);
87 foreach ($new_declared_classes as $entry_class) {
89 if (!$reflection->isAbstract() && $reflection->isSubclassOf(self::PHP_UNIT_PARENT_CLASS)) {
90 echo
"Adding Test-Suite: " . $entry_class .
"\n";
91 $suite->addTestSuite($entry_class);
98 next($test_directories);
static addTestFolderToSuite(ILIASSuite $suite)
Find and add all testSuits beneath ILIAS_ROOL/tests - folder.
This is the global ILIAS test suite.
const REGEX_TEST_FILENAME
const PHP_UNIT_PARENT_CLASS