rootDir = $rootDir; } /** * @return array Returns an list of `.php` files found on the filesystem * inside `$rootDir`. The array maps file basenames (i.e. * `MyClassTest.php`) to lists of paths where that basename * is found (e.g. `[ 'tests/phpunit/MyClassTest.php', * 'extensions/MyExtension/tests/phpunit/MyClassTest.php' ]`) */ public function scanForFiles(): array { $phpFiles = []; $iterator = new RecursiveIteratorIterator( new PhpUnitTestFileScannerFilter( new RecursiveDirectoryIterator( $this->rootDir ) ) ); foreach ( $iterator as $file ) { if ( $file->isFile() && $file->getExtension() === 'php' ) { $filename = $file->getFilename(); if ( !array_key_exists( $filename, $phpFiles ) ) { $phpFiles[$filename] = []; } $phpFiles[$filename][] = $file->getPathname(); } } return $phpFiles; } }