ILIAS  release_8 Revision v8.24
ilServicesRandomizationSuite.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
5/* Copyright (c) 1998-2021 ILIAS open source, Extended GPL, see docs/LICENSE */
6
7use PHPUnit\Framework\TestSuite;
8use PHPUnit\Framework\TestCase;
9
10require_once 'libs/composer/vendor/autoload.php';
11
17class ilServicesRandomizationSuite extends TestSuite
18{
19 public static function suite(): self
20 {
21 $suite = new self();
22
23 foreach (new RegExIterator(
24 new RecursiveIteratorIterator(
25 new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
26 RecursiveIteratorIterator::LEAVES_ONLY
27 ),
28 '/(?<!Base)Test\.php$/'
29 ) as $file) {
31 require_once $file->getPathname();
32
33 $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
34 if (class_exists($className)) {
35 $reflection = new ReflectionClass($className);
36 if (
37 !$reflection->isAbstract() &&
38 !$reflection->isInterface() &&
39 $reflection->isSubclassOf(TestCase::class)) {
40 $suite->addTestSuite($className);
41 }
42 }
43 }
44
45 return $suite;
46 }
47}