31 : self
32 {
33 $suite = new self();
34
35 $dir = __DIR__;
36 $classes = [];
37
38 $files = new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
39 $files = new RecursiveIteratorIterator($files, RecursiveIteratorIterator::LEAVES_ONLY);
40 $files = new RegExIterator($files, '/\.php$/');
41
42 foreach ($files as $file) {
43 $file = $file->getPathname();
44 $className = preg_replace(['@^.*/@', '/^class./', '/\.php$/'], '', $file);
45 require_once $file;
46 $classes[] = $className;
47 }
48 array_map([$suite, 'addTestSuite'], array_filter(array_filter($classes, 'class_exists'), [self::class, 'notSelf']));
49
50 return $suite;
51 }