Page MenuHomePhabricator

Use of ExtensionJsonTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
Open, Needs TriagePublic

Description

PHPUnit 10 marks empty data provider as invalid with the text "Empty data set provided by data provider" and count this as errors.

Some of the provider of the abstract ExtensionJsonTestBase are designed to return empty array in case there is nothing in extension.json to test.
Throwing an exception (like markTestSkipped) does not work under PHPUnit 10.

It also exit phpunit due to use of markTestSkipped in data provider

Running with MediaWiki settings because there might be integration tests
PHPUnit 10.5.63 by Sebastian Bergmann and contributors.

self::$requireHookHandlers is not enabled

Example from AbuseFilter. But also CentralAuth or CheckUser have this test.

1) MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testHookUsesHookHandler
The data provider specified for MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testHookUsesHookHandler is invalid
Empty data set provided by data provider

AbuseFilter\tests\phpunit\integration\AbuseFilterExtensionJsonTest.php:135

2) MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testContentHandler
The data provider specified for MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testContentHandler is invalid
Empty data set provided by data provider

AbuseFilter\tests\phpunit\integration\AbuseFilterExtensionJsonTest.php:168

3) MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testSessionProviders
The data provider specified for MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testSessionProviders is invalid
Empty data set provided by data provider

AbuseFilter\tests\phpunit\integration\AbuseFilterExtensionJsonTest.php:266

4) MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testJobClasses
The data provider specified for MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testJobClasses is invalid
Empty data set provided by data provider

AbuseFilter\tests\phpunit\integration\AbuseFilterExtensionJsonTest.php:280

5) MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testRestRoutes
The data provider specified for MediaWiki\Extension\AbuseFilter\Tests\Integration\AbuseFilterExtensionJsonTest::testRestRoutes is invalid
Empty data set provided by data provider

AbuseFilter\tests\phpunit\integration\AbuseFilterExtensionJsonTest.php:334