diff --git a/src/TextUI/TestRunner.php b/src/TextUI/TestRunner.php index 0ed22ce29d6..95d12ecfbdb 100644 --- a/src/TextUI/TestRunner.php +++ b/src/TextUI/TestRunner.php @@ -36,6 +36,7 @@ use PHPUnit\Runner\TestSuiteSorter; use PHPUnit\Runner\Version; use PHPUnit\Util\Configuration; +use PHPUnit\Util\Filesystem; use PHPUnit\Util\Log\JUnit; use PHPUnit\Util\Log\TeamCity; use PHPUnit\Util\Printer; @@ -562,11 +563,18 @@ public function doRun(Test $suite, array $arguments = [], bool $exit = true): Te } if (isset($arguments['xdebugFilterFile'], $filterConfiguration)) { + $this->write("\n"); + $script = (new XdebugFilterScriptGenerator)->generate($filterConfiguration['whitelist']); + if (!Filesystem::createDirectory(\dirname($arguments['xdebugFilterFile']))) { + $this->write(\sprintf('Cannot write Xdebug filter script to %s ' . \PHP_EOL, $arguments['xdebugFilterFile'])); + + exit(self::EXCEPTION_EXIT); + } + \file_put_contents($arguments['xdebugFilterFile'], $script); - $this->write("\n"); $this->write(\sprintf('Wrote Xdebug filter script to %s ' . \PHP_EOL, $arguments['xdebugFilterFile'])); exit(self::SUCCESS_EXIT); diff --git a/tests/end-to-end/dump-xdebug-filter.phpt b/tests/end-to-end/dump-xdebug-filter.phpt index 52818bb454d..5136619a373 100644 --- a/tests/end-to-end/dump-xdebug-filter.phpt +++ b/tests/end-to-end/dump-xdebug-filter.phpt @@ -16,6 +16,7 @@ require __DIR__ . '/../bootstrap.php'; PHPUnit\TextUI\Command::main(); --EXPECTF-- PHPUnit %s by Sebastian Bergmann and contributors. +