diff --git a/composer.json b/composer.json index ee798e6d..eb1b5f5c 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ ], "require": { "php": "^8.3", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^11.3", "squizlabs/php_codesniffer": "^3.7", "behat/behat": "^3.11.0", "behat/mink": "^1.10.0", diff --git a/src/Extension.php b/src/Extension.php index 7775f961..6f88a858 100644 --- a/src/Extension.php +++ b/src/Extension.php @@ -22,6 +22,9 @@ use Behat\Behat\Tester\ServiceContainer\TesterExtension; use SilverStripe\BehatExtension\Utility\RerunTotalStatistics; use SilverStripe\BehatExtension\Utility\RerunRuntimeSuiteTester; +use PHPUnit\TextUI\CliArguments\Builder; +use PHPUnit\TextUI\Configuration\Registry; +use PHPUnit\TextUI\XmlConfiguration\DefaultConfiguration; /* * This file is part of the SilverStripe\BehatExtension @@ -76,6 +79,11 @@ public function initialize(ExtensionManager $extensionManager) if (!$found) { throw new RuntimeException('Could not find PHPUnit installation'); } + + // Need to init phpunit app registry to get phpunit exporter to work + $cliConfiguration = (new Builder)->fromParameters([]); + $xmlConfiguration = DefaultConfiguration::create(); + Registry::init($cliConfiguration, $xmlConfiguration); } public function load(ContainerBuilder $container, array $config) diff --git a/tests/php/SilverStripeContextTest.php b/tests/php/SilverStripeContextTest.php index 78058992..90fdae5a 100644 --- a/tests/php/SilverStripeContextTest.php +++ b/tests/php/SilverStripeContextTest.php @@ -40,7 +40,7 @@ public function testGetRegionObjFindsBySelector() $context->getSession()->getPage() ->expects($this->any()) ->method('find') - ->will($this->returnValue($this->getElementMock())); + ->willReturn($this->getElementMock()); $obj = $context->getRegionObj('.some-selector'); $this->assertNotNull($obj); } @@ -52,9 +52,9 @@ public function testGetRegionObjFindsByRegion() $context->getSession()->getPage() ->expects($this->any()) ->method('find') - ->will($this->returnCallback(function ($type, $selector) use ($el) { + ->willReturnCallback(function ($type, $selector) use ($el) { return ($selector == '.my-region') ? $el : null; - })); + }); $context->setRegionMap(array('MyRegion' => '.my-asdf')); $obj = $context->getRegionObj('.my-region'); $this->assertNotNull($obj); @@ -67,18 +67,18 @@ protected function getContextMock() { $pageMock = $this->getMockBuilder(DocumentElement::class) ->disableOriginalConstructor() - ->setMethods(array('find')) + ->onlyMethods(array('find')) ->getMock(); $sessionMock = $this->getMockBuilder(Session::class) ->setConstructorArgs(array( $this->getMockBuilder(DriverInterface::class)->getMock(), $this->getMockBuilder(SelectorsHandler::class)->getMock() )) - ->setMethods(array('getPage')) + ->onlyMethods(array('getPage')) ->getMock(); $sessionMock->expects($this->any()) ->method('getPage') - ->will($this->returnValue($pageMock)); + ->willReturn($pageMock); $mink = new Mink(array('default' => $sessionMock)); $mink->setDefaultSessionName('default');