CodeTestAbstract.php 1021 B

123456789101112131415161718192021222324252627282930
  1. <?php declare(strict_types=1);
  2. namespace PhpParser;
  3. use PHPUnit\Framework\TestCase;
  4. require_once __DIR__ . '/CodeTestParser.php';
  5. abstract class CodeTestAbstract extends TestCase
  6. {
  7. protected function getTests($directory, $fileExtension, $chunksPerTest = 2) {
  8. $parser = new CodeTestParser;
  9. $allTests = [];
  10. foreach (filesInDir($directory, $fileExtension) as $fileName => $fileContents) {
  11. list($name, $tests) = $parser->parseTest($fileContents, $chunksPerTest);
  12. // first part is the name
  13. $name .= ' (' . $fileName . ')';
  14. $shortName = ltrim(str_replace($directory, '', $fileName), '/\\');
  15. // multiple sections possible with always two forming a pair
  16. foreach ($tests as $i => list($mode, $parts)) {
  17. $dataSetName = $shortName . (count($parts) > 1 ? '#' . $i : '');
  18. $allTests[$dataSetName] = array_merge([$name], $parts, [$mode]);
  19. }
  20. }
  21. return $allTests;
  22. }
  23. }