diff --git a/src/Bootstrappers/BootSubscribers.php b/src/Bootstrappers/BootSubscribers.php index 1a5a6c74..387ee958 100644 --- a/src/Bootstrappers/BootSubscribers.php +++ b/src/Bootstrappers/BootSubscribers.php @@ -46,9 +46,11 @@ final class BootSubscribers implements Bootstrapper assert($instance instanceof Subscriber); - Event\Facade::registerSubscriber( - $instance - ); + if (method_exists(Event\Facade::class, 'instance')) { // @phpstan-ignore-line + Event\Facade::instance()->registerSubscriber($instance); + } else { + Event\Facade::registerSubscriber($instance); // @phpstan-ignore-line + } } } } diff --git a/src/Logging/TeamCity/TeamCityLogger.php b/src/Logging/TeamCity/TeamCityLogger.php index 85994a84..d89fcd9e 100644 --- a/src/Logging/TeamCity/TeamCityLogger.php +++ b/src/Logging/TeamCity/TeamCityLogger.php @@ -224,7 +224,7 @@ final class TeamCityLogger */ private function registerSubscribers(): void { - Facade::registerSubscribers( + $subscribers = [ new TestSuiteStartedSubscriber($this), new TestSuiteFinishedSubscriber($this), new TestPreparedSubscriber($this), @@ -235,7 +235,13 @@ final class TeamCityLogger new TestSkippedSubscriber($this), new TestConsideredRiskySubscriber($this), new TestExecutionFinishedSubscriber($this), - ); + ]; + + if (method_exists(Facade::class, 'instance')) { // @phpstan-ignore-line + Facade::instance()->registerSubscribers(...$subscribers); + } else { + Facade::registerSubscribers(...$subscribers); // @phpstan-ignore-line + } } private function setFlowId(): void diff --git a/src/Plugins/Parallel/Paratest/WrapperRunner.php b/src/Plugins/Parallel/Paratest/WrapperRunner.php index 5c3bf2e4..7647c87e 100644 --- a/src/Plugins/Parallel/Paratest/WrapperRunner.php +++ b/src/Plugins/Parallel/Paratest/WrapperRunner.php @@ -114,7 +114,12 @@ final class WrapperRunner implements RunnerInterface ExcludeList::addDirectory($directory); TestResultFacade::init(); - EventFacade::seal(); + + if (method_exists(EventFacade::class, 'instance')) { // @phpstan-ignore-line + EventFacade::instance()->seal(); + } else { + EventFacade::seal(); // @phpstan-ignore-line + } $suiteLoader = new SuiteLoader($this->options, $this->output, $this->codeCoverageFilterRegistry); $this->pending = $this->getTestFiles($suiteLoader);