⚓ T328919 Upgrade PHPUnit in MediaWiki code to PHPUnit 10
Page Menu
Phabricator
Create Task
Maniphest
T328919
Upgrade PHPUnit in MediaWiki code to PHPUnit 10
Open, Needs Triage
Public
Actions
Edit Task
Edit Related Tasks...
Create Subtask
Edit Parent Tasks
Edit Subtasks
Merge Duplicates In
Close As Duplicate
Edit Related Objects...
Edit Commits
Edit Mocks
Mute Notifications
Protect as security issue
Assigned To
None
Authored By
Daimona
Feb 6 2023, 2:16 PM
2023-02-06 14:16:35 (UTC+0)
Tags
MediaWiki-Core-Tests
(PHPUnit)
MW-1.45-notes (1.45.0-wmf.4; 2025-06-03)
Patch-For-Review
MW-1.46-notes (1.46.0-wmf.18; 2026-03-03)
Referenced Files
None
Subscribers
A_smart_kitten
Aklapper
ArielGlenn
bd808
bvibber
Daimona
DAlangi_WMF
View All 12 Subscribers
Description
PHPUnit 10
was released
on February 3, 2023. According to the announcement, this release brings lots of changes to the internals of PHPUnit, like a new event system that replaces test listeners and hooks. It would also be interesting to see if upgrading would speed up our test suites. Note that PHPUnit 10 requires PHP >= 8.1, so we can't upgrade until prod is on 8.1. (
T319432
) and the minimum version requirement is bumped in the code. Also, we will need to make some changes to both the tests (for methods that were deprecated/removed) and the configuration (e.g., update the listeners we're using to the new event system). This task will be similar to
T243600
Incomplete list of known blockers/TODOs
Everything covered by the 9.6 upgrade task
T342110
PHP 8.1+ dependency (
T328921
Deprecation notices are emitted for non-static data providers (
T332865
TestCase::run
became final, currently overridden in
MediaWikiIntegrationTestCase
T342259
Return type hint of
mixed
added to
TestCase::runTest
, currently overridden in
MediaWikiUnitTestCase and ApiTestCase
, function also now
private
Test::getLinesToBeCovered
, used in
MediaWikiCoversValidator
, has been moved to
PHPUnit\Metadata\Api\CodeCoverage::linesToBeCovered
PHPUnit prints the PHP version before starting tests, so we can remove the code which does the same thing in our bootstrap
johnkary/phpunit-speedtrap
is currently not compatible with PHPUnit 10. A
PR
for this has been open for 3 years now.
T395743: Use of package ockcyp/covers-validator in libaries is not compatible with PHPUnit 10
Config file schema has changed. Can be fixed quite easily by running PHPUnit with
--migrate-configuration
but
this needs manual review (unsupported options are just quietly removed)
Make sure that PHPUnit is configured to display notices, deprecations, etc:
displayDetailsOnTestsThatTriggerDeprecations="true"
displayDetailsOnTestsThatTriggerErrors="true"
displayDetailsOnTestsThatTriggerNotices="true"
displayDetailsOnTestsThatTriggerWarnings="true"
displayDetailsOnPhpunitDeprecations="true"
Support for custom printers has been removed. We currently use this for
MediaWikiPHPUnitResultPrinter
, which adds the "Logs generated by test case" thing.
Make sure that data providers do not return complex object structures. PHPUnit will stringify them before running tests, potentially leading to massive slowdowns. This has been previously observed as PHPUnit hanging for ~40 seconds before actually starting tests. See
T328919#9138704
The order in which
@before
and similar methods are called has been changed. For some reason, it looks like it now calls the
@before
method in a subclass before the
@before
method in a parent class. This is a huge issue because our base test classes (Integration and UnitTestCase) use them, and for instance, MediaWikiLangTestCase also defines a
@before
method. Those are written with the assumption that the parent
@before
is called first. This may or may not be intentional: the code that lists hook methods pays attention to the ordering by using array_unshift (see
HookMethods.php
). The method which generates a list of class methods also takes inheritance into account and sorts methods accordingly, see
Reflection.php
. This piece of code was
changed
to sort methods highest to lowest, then the change was
reverted
, and then the revert was also
reverted
. I can confirm that in PHPUnit 10.3.2 the methods are sorted highest to lowest, which is the opposite of what we want (as long as array_unshift is used). But the code in HookMethods.php has been using array_unshift for a long time, before those changes to Reflection were made; additionally, the commit message of the Reflection change states "so that tests implemented in a parent class are run before the tests implemented in a child class", which doesn't mention hook methods. To me, it looks like Sebastian had no intention of changing the ordering of test methods, and simply forgot to update the array_unshift calls when reversing the ordering in Reflection. Note, this is also true, but in reverse, for
@after
and the other hook methods that are run after tests. Upstream issue:
--> fixed in PHPUnit 10.3.3
TestSuite
is now officially impossible to extend; the static
suite()
method has been removed, and the constructor has been made final and private. It was already pretty clear that this was going to happen when we upgraded to PHPUnit 8 and had to introduce
SuiteEventsTrait
. We currently use custom suite classes for
two main use cases
: parser tests, skin tests, and extension tests (including unit tests after
r937559
). These will need to be re-done differently. Note that these custom test suites are also currently preventing us from using paratest (
T50217
), because the list of tests is not known soon enough. See
T345481
Our custom PHPUnit extensions (currently
MediaWikiLoggerPHPUnitExtension
and
MediaWikiTeardownPHPUnitExtension
) must be updated with PHPUnit 10's event system.
TestCase::$backupGlobalsExcludeList and TestCase::$backupStaticPropertiesExcludeList now private, remove set in
MediaWikiIntegrationTestCase::__construct
ref
More stuff from
T328919#10855098
Details
Related Changes in Gerrit:
Subject
Repo
Branch
Lines +/-
phpunit: Migrate PHPUnit extensions and config to PHPUnit 10
mediawiki/core
master
+190
-109
tests: Adjust string keys in data provider or arguments on tests
mediawiki/core
master
+477
-477
tests: Stop overriding TestCase::toString()
mediawiki/extensions/Scribunto
master
+9
-50
tests: Replace phpunit-speedtrap with phpunit-slow-test-detector
mediawiki/core
master
+12
-8
Demo: Upgrade to PHPUnit 10.5
mediawiki/core
master
+127
-106
tests: Rework ApiTestCase::expectApiErrorCode
mediawiki/core
master
+27
-36
tests: Add ApiTestCase::expectApiErrorCodeFromCallback
mediawiki/core
master
+132
-98
tests: Remove unused argument from data provider in PageUpdaterTest
mediawiki/core
master
+1
-1
tests: Remove use of phpunit internal function TestCase::getActualOutput
mediawiki/core
master
+19
-22
tests: Remove use of phpunit internal function TestCase::getActualOutput
mediawiki/extensions/Cognate
master
+1
-1
tests: Remove use of phpunit internal function TestCase::getName
mediawiki/extensions/Wikibase
master
+5
-5
tests: Remove use of phpunit internal function TestCase::getName
mediawiki/core
master
+276
-98
tests: Remove use of phpunit internal function TestCase::getName
mediawiki/extensions/GrowthExperiments
master
+1
-1
Show related patches
Customize query in gerrit
Related Objects
Search...
Task Graph
Mentions
View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use
View Standalone Graph
to show more of the graph.
Status
Subtype
Assigned
Task
· · ·
Stalled
None
T255792
Quibble runs core:unit tests twice!
Stalled
None
T334726
Use return type `never` in Wikibase
Open
None
T232915
Red-green in PHPUnit code coverage are hard to read
Open
None
T328919
Upgrade PHPUnit in MediaWiki code to PHPUnit 10
Resolved
Lucas_Werkmeister_WMDE
T328741
Test failures under PHPUnit 9.6: "Expecting E_DEPRECATED and E_USER_DEPRECATED is deprecated and will no longer be possible in PHPUnit 10"
Resolved
Daimona
T342110
Upgrade to PHPUnit 9.6
Resolved
Daimona
T342259
Move MediaWikiIntegrationTestCase setup and teardown away from run()
Open
None
T332865
PHPUnit data providers should be simple static functions that return plain data
Open
None
T345481
Migrate Parser and extension tests away from deprecated PHPUnit TestSuite subclassing
Resolved
Arendpieter
T358394
Stop using internal PHPUnit code in Scribunto
Open
None
T363064
MediaWiki.Commenting.MissingCovers.MissingCovers does not support PHPUnit 10.x attributes
Resolved
Umherirrender
T363641
IPUtils: Expecting E_WARNING and E_USER_WARNING is deprecated and will no longer be possible in PHPUnit 10
Resolved
larissagaulia
T363650
Minify: Expecting E_WARNING and E_USER_WARNING is deprecated and will no longer be possible in PHPUnit 10
Resolved
Umherirrender
T362858
equivset: Expecting E_ERROR and E_USER_ERROR is deprecated
Resolved
Jdforrester-WMF
T328921
Drop PHP 7.4 and PHP 8.0 support from MediaWiki
Resolved
Jdforrester-WMF
T395743
Use of package ockcyp/covers-validator in libaries is not compatible with PHPUnit 10
Open
None
T420851
Use of ExtensionJsonTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
Open
None
T420853
Use of AbstractSchemaTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
Open
None
T420854
LuaEngineTestBase causes "Empty data set provided by data provider" failures for lua errors under PHPUnit 10
Open
None
T420856
Use of HTMLFormFieldTestCase causes "Empty data set provided by data provider" failures under PHPUnit 10
Open
None
T420857
Skipping in EnWikiFormulaeTest does not work under PHPUnit 10
Open
None
T420859
EntityHandlerTestCase causes invalid data provider failures under PHPUnit 10
Open
None
T420860
OutputTransformStageTestBase causes invalid data provider failures under PHPUnit 10
Resolved
Umherirrender
T421178
Fix PHPUnit 10 deprecation notice "Providing invalid named argument $... for method ... is deprecated and will not be supported in PHPUnit 11.0." in wmf deployed code
· · ·
Mentioned In
T421178: Fix PHPUnit 10 deprecation notice "Providing invalid named argument $... for method ... is deprecated and will not be supported in PHPUnit 11.0." in wmf deployed code
T420851: Use of ExtensionJsonTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
T418217: wikibase-client-php83 CI fails: Class "LuaStandalone: Wikibase\Client\Tests\Integration\DataAccess\Scribunto\WikibaseEntityLibraryTest" does not exist
T407038: ShellBox tests override PHPUnit\Framework\TestCase::run(), marked as final in phpunit 10
T407015: Replace getMockForAbstractClass from tests (soft-deprecated with phpunit 10)
T406470: Wikibase/WikibaseLexeme CI broken: PHP Fatal error: An alias (traitDumpSeedForReproducing) was defined for method dumpSeedForReproducing(), but this method does not exist
T404107: Better visibility into PHPUnit split group status in CI
T334726: Use return type `never` in Wikibase
T387806: Fix mediawiki/libs/Equivset so that its tests pass in PHP 8.4, and enable in CI
T50217: Speed up MediaWiki PHPUnit build by running integration tests in parallel
T358451: Disallow access to globals and MediaWikiServices during the execution of PHPUnit data providers
T345481: Migrate Parser and extension tests away from deprecated PHPUnit TestSuite subclassing
T342110: Upgrade to PHPUnit 9.6
T331621: CI: Don't show PHPUnit progress
Mentioned Here
T418217: wikibase-client-php83 CI fails: Class "LuaStandalone: Wikibase\Client\Tests\Integration\DataAccess\Scribunto\WikibaseEntityLibraryTest" does not exist
T404107: Better visibility into PHPUnit split group status in CI
T395743: Use of package ockcyp/covers-validator in libaries is not compatible with PHPUnit 10
T328921: Drop PHP 7.4 and PHP 8.0 support from MediaWiki
T328922: Drop PHP 8.0 support from MediaWiki
T345481: Migrate Parser and extension tests away from deprecated PHPUnit TestSuite subclassing
T50217: Speed up MediaWiki PHPUnit build by running integration tests in parallel
T332865: PHPUnit data providers should be simple static functions that return plain data
T342110: Upgrade to PHPUnit 9.6
T342259: Move MediaWikiIntegrationTestCase setup and teardown away from run()
T243600: Migrate MediaWiki core (and thus extensions and skins) to PHPUnit 9
T319432: Migrate WMF production from PHP 7.4 to PHP 8.1
Event Timeline
There are a very large number of changes, so older changes are hidden.
Show Older Changes
Daimona
added a comment.
Aug 6 2024, 10:51 PM
2024-08-06 22:51:38 (UTC+0)
Comment Actions
In
T328919#10046294
@Krinkle
wrote:
To figure out: it looks like the data provider phase runs MUCH slower in PHPUnit 10; locally, PHPUnit hangs for ~40 seconds before actually starting tests, as opposed to just a few seconds in PHPUnit 9. I still don't know what causes this, whether it's caused by the data provider changes, whether it's caused by our bootstrap code, etc.
Have we reported this to upstream PHPUnit? Sebastian seems pretty interested in performance recently. It's possible that there's a way we can do something different or better to avoid it, but I don't think he would mind finding out that this is something that can happen during upgrades. Perhaps he'd improve docs as a result to make the recommended solution easier to find, or perhaps some kind of warning or deprecation notice for whatever unusual thing we do.
No, but at the time I came across
issue #5184
(and duplicate
#5183
) which seems to be closely related. AIUI, the recommended solution is to use data providers as they're meant to be used, i.e. returning only plain data from them, as noted in
T328919#9138704
ArielGlenn
subscribed.
Feb 27 2025, 10:32 AM
2025-02-27 10:32:37 (UTC+0)
Umherirrender
mentioned this in
T387806: Fix mediawiki/libs/Equivset so that its tests pass in PHP 8.4, and enable in CI
Mar 7 2025, 5:30 PM
2025-03-07 17:30:21 (UTC+0)
Krinkle
added a subtask:
T328921: Drop PHP 7.4 and PHP 8.0 support from MediaWiki
Apr 28 2025, 4:38 PM
2025-04-28 16:38:21 (UTC+0)
Krinkle
removed a subtask:
T328922: Drop PHP 8.0 support from MediaWiki
Umherirrender
updated the task description.
(Show Details)
May 5 2025, 7:14 PM
2025-05-05 19:14:37 (UTC+0)
Novem_Linguae
updated the task description.
(Show Details)
May 5 2025, 7:19 PM
2025-05-05 19:19:50 (UTC+0)
Novem_Linguae
updated the task description.
(Show Details)
gerritbot
added a comment.
May 20 2025, 6:56 PM
2025-05-20 18:56:42 (UTC+0)
Comment Actions
Change #1148424 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] tests: Replace phpunit-speedtrap with phpunit-slow-test-detector
gerritbot
added a project:
Patch-For-Review
May 20 2025, 6:56 PM
2025-05-20 18:56:43 (UTC+0)
Umherirrender
updated the task description.
(Show Details)
May 20 2025, 7:30 PM
2025-05-20 19:30:46 (UTC+0)
gerritbot
added a comment.
May 20 2025, 8:13 PM
2025-05-20 20:13:31 (UTC+0)
Comment Actions
Change #1148442 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] tests: Remove use of phpunit internal function TestCase::getName
gerritbot
added a comment.
May 20 2025, 8:13 PM
2025-05-20 20:13:35 (UTC+0)
Comment Actions
Change #1148443 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/extensions/GrowthExperiments@master] tests: Remove use of phpunit internal function TestCase::getName
gerritbot
added a comment.
May 20 2025, 8:13 PM
2025-05-20 20:13:53 (UTC+0)
Comment Actions
Change #1148444 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/extensions/Wikibase@master] tests: Remove use of phpunit internal function TestCase::getName
gerritbot
added a comment.
May 21 2025, 7:42 AM
2025-05-21 07:42:46 (UTC+0)
Comment Actions
Change #1148443
merged
by jenkins-bot:
[mediawiki/extensions/GrowthExperiments@master] tests: Remove use of phpunit internal function TestCase::getName
ReleaseTaggerBot
added a project:
MW-1.45-notes (1.45.0-wmf.3; 2025-05-27)
May 21 2025, 8:00 AM
2025-05-21 08:00:36 (UTC+0)
gerritbot
added a comment.
May 21 2025, 5:48 PM
2025-05-21 17:48:29 (UTC+0)
Comment Actions
Change #1148444
merged
by jenkins-bot:
[mediawiki/extensions/Wikibase@master] tests: Remove use of phpunit internal function TestCase::getName
gerritbot
added a comment.
May 21 2025, 5:48 PM
2025-05-21 17:48:33 (UTC+0)
Comment Actions
Change #1148442
merged
by jenkins-bot:
[mediawiki/core@master] tests: Remove use of phpunit internal function TestCase::getName
gerritbot
added a comment.
May 24 2025, 9:41 PM
2025-05-24 21:41:04 (UTC+0)
Comment Actions
Change #1149755 had a related patch set uploaded (by Krinkle; author: Umherirrender):
[mediawiki/extensions/Cognate@master] tests: Remove use of phpunit internal function TestCase::getActualOutput
gerritbot
added a comment.
May 24 2025, 9:41 PM
2025-05-24 21:41:18 (UTC+0)
Comment Actions
Change #1149758 had a related patch set uploaded (by Krinkle; author: Umherirrender):
[mediawiki/core@master] tests: Remove use of phpunit internal function TestCase::getActualOutput
gerritbot
added a comment.
May 24 2025, 10:13 PM
2025-05-24 22:13:06 (UTC+0)
Comment Actions
Change #1149755
merged
by jenkins-bot:
[mediawiki/extensions/Cognate@master] tests: Remove use of phpunit internal function TestCase::getActualOutput
gerritbot
added a comment.
May 24 2025, 10:13 PM
2025-05-24 22:13:10 (UTC+0)
Comment Actions
Change #1149758
merged
by jenkins-bot:
[mediawiki/core@master] tests: Remove use of phpunit internal function TestCase::getActualOutput
gerritbot
added a comment.
May 24 2025, 10:57 PM
2025-05-24 22:57:24 (UTC+0)
Comment Actions
Change #1149844 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] tests: Remove unused argument from data provider in PageUpdaterTest
gerritbot
added a comment.
May 24 2025, 11:51 PM
2025-05-24 23:51:18 (UTC+0)
Comment Actions
Change #1149844
merged
by jenkins-bot:
[mediawiki/core@master] tests: Remove unused argument from data provider in PageUpdaterTest
gerritbot
added a comment.
May 25 2025, 10:58 AM
2025-05-25 10:58:56 (UTC+0)
Comment Actions
Change #1149986 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] Demo: Upgrade to PHPUnit 10.5
Umherirrender
updated the task description.
(Show Details)
May 25 2025, 1:51 PM
2025-05-25 13:51:15 (UTC+0)
Umherirrender
subscribed.
May 25 2025, 2:07 PM
2025-05-25 14:07:12 (UTC+0)
Comment Actions
After fixing many of the non-static data provider in wmf-deployed code (
T332865
) I have tested PHPUnit on core. My demo patch can be found under
This should not block any other work to upgrade PHPUnit 10, feel free to start your own work, starting on my work or not, mention my work or not.
I have fixed some issues, with own patch sets, found in the failures, that were already invalid in PHPUnit 9 without failure (like use of internal PHPUnit functions). But there are many phpunit messages still to investigate and fix.
I have not start work for "big" things like use of the event system or running dynamic suites (
T345481
My notes from playing around with just the test cases:
dataProvider: PHPUnit 10 is more strict here
non-static provider are deprecated (replacement as part of
T332865
arguments on provider are deprecated
empty provider are deprecated (there are some in core) (via empty iterable or markSkippedTests)
string keys in provider data must match argument names (in preparation for use as named arguments in PHPUnit 11), there are a lot
many messages with output buffer not closed correctly in tests ("Test code or tested code did not close its own output buffers" and "Test code or tested code closed output buffers other than its own"), maybe related to teardown after exception, counted as "risky tests"
Suppressed warnings or notice from AtEase are showing up, maybe using wrong options as replacement in the xml config
bootstrap using many phpunit internal classes or functions, that are not under the compatibility promise
some test cases using internal functions, that no longer named like that or now private, or arguments changed (like TestCase::__construct)
Mocked class names must be unique (via getMockForAbstractClass or setMockClassName), but sometimes called repeatly
count of test cases are different, needs check via listing of tests if something runs twice or in wrong group
To get the upgrade done, many work of some person is still needed.
Daimona
added a comment.
May 27 2025, 2:24 AM
2025-05-27 02:24:17 (UTC+0)
Comment Actions
Thank you for all the work done on this! Indeed, it seems like there's a lot more to do -- and to simply investigate, even. And that's just for "smaller" changes. Basically, the conclusion is the same I reached a long time ago, by considering even just the dynamic suites stuff: this work can't be completed by a single person, and it's going to be difficult even for a small group of people doing it in their spare time. OTOH, I'm not sure if our PHPUnit tests/config are officially owned by someone, and I'm even more doubtful that this upgrade is part of anybody's plans. I'm not sure how to move this forward.
Daimona
updated the task description.
(Show Details)
May 27 2025, 2:26 AM
2025-05-27 02:26:24 (UTC+0)
gerritbot
added a comment.
May 28 2025, 10:15 PM
2025-05-28 22:15:22 (UTC+0)
Comment Actions
Change #1151803 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] tests: Rework ApiTestCase::expectApiErrorCode
gerritbot
added a comment.
May 29 2025, 8:16 AM
2025-05-29 08:16:02 (UTC+0)
Comment Actions
Change #1152006 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] tests: Add ApiTestCase::expectApiErrorCodeFromCallback
gerritbot
added a comment.
May 29 2025, 3:36 PM
2025-05-29 15:36:35 (UTC+0)
Comment Actions
Change #1152006
merged
by jenkins-bot:
[mediawiki/core@master] tests: Add ApiTestCase::expectApiErrorCodeFromCallback
ReleaseTaggerBot
edited projects, added
MW-1.45-notes (1.45.0-wmf.4; 2025-06-03)
; removed
MW-1.45-notes (1.45.0-wmf.3; 2025-05-27)
May 29 2025, 4:00 PM
2025-05-29 16:00:32 (UTC+0)
gerritbot
added a comment.
May 29 2025, 5:36 PM
2025-05-29 17:36:13 (UTC+0)
Comment Actions
Change #1151803
merged
by jenkins-bot:
[mediawiki/core@master] tests: Rework ApiTestCase::expectApiErrorCode
Umherirrender
updated the task description.
(Show Details)
May 29 2025, 6:21 PM
2025-05-29 18:21:25 (UTC+0)
Umherirrender
added a subtask:
T395743: Use of package ockcyp/covers-validator in libaries is not compatible with PHPUnit 10
May 31 2025, 11:43 PM
2025-05-31 23:43:08 (UTC+0)
Daimona
updated the task description.
(Show Details)
Jun 6 2025, 12:15 AM
2025-06-06 00:15:42 (UTC+0)
Jdforrester-WMF
closed subtask
T328921: Drop PHP 7.4 and PHP 8.0 support from MediaWiki
as
Resolved
Jun 6 2025, 6:25 PM
2025-06-06 18:25:03 (UTC+0)
Jdforrester-WMF
renamed this task from
Upgrade to PHPUnit 10
to
Upgrade to PHPUnit in MediaWiki code to PHPUnit 10
Jun 11 2025, 1:55 PM
2025-06-11 13:55:43 (UTC+0)
Jdforrester-WMF
subscribed.
Comment Actions
Before the final push, is it worth working on libraries, switching them all over to PHPUnit 10? FWICS most of them should be trivial upgrades at this point.
Daimona
updated the task description.
(Show Details)
Jun 11 2025, 2:18 PM
2025-06-11 14:18:57 (UTC+0)
Novem_Linguae
renamed this task from
Upgrade to PHPUnit in MediaWiki code to PHPUnit 10
to
Upgrade PHPUnit in MediaWiki code to PHPUnit 10
Jun 11 2025, 4:36 PM
2025-06-11 16:36:40 (UTC+0)
Daimona
updated the task description.
(Show Details)
Jun 11 2025, 5:15 PM
2025-06-11 17:15:13 (UTC+0)
Lucas_Werkmeister_WMDE
mentioned this in
T334726: Use return type `never` in Wikibase
Jul 15 2025, 3:51 PM
2025-07-15 15:51:47 (UTC+0)
Lucas_Werkmeister_WMDE
added a parent task:
T334726: Use return type `never` in Wikibase
Umherirrender
closed subtask
T363641: IPUtils: Expecting E_WARNING and E_USER_WARNING is deprecated and will no longer be possible in PHPUnit 10
as
Resolved
Aug 5 2025, 4:58 PM
2025-08-05 16:58:08 (UTC+0)
Daimona
mentioned this in
T404107: Better visibility into PHPUnit split group status in CI
Sep 9 2025, 6:12 PM
2025-09-09 18:12:32 (UTC+0)
Jdforrester-WMF
updated the task description.
(Show Details)
Sep 9 2025, 6:28 PM
2025-09-09 18:28:10 (UTC+0)
bd808
subscribed.
Sep 9 2025, 11:27 PM
2025-09-09 23:27:56 (UTC+0)
Comment Actions
In
T328919#8679104
@kostajh
wrote:
One thing that would be nice for CI: add
--no-progress
when running tests, because we don't really need to scroll through pages of progress output to get to the test failures.
That might put every test run in the state that
T404107: Better visibility into PHPUnit split group status in CI
would really like to fix where it is impossible to tell what the CI system is doing or if it is doing anything at all. We can certainly test it out, but we should be ready to drop that if it does obfuscate system status.
What might be nicer for surfacing test failures is reporting via an xunit json file. I assume that idea has come up before somewhere. Does anyone remember why we aren't already doing that?
Umherirrender
closed subtask
T362858: equivset: Expecting E_ERROR and E_USER_ERROR is deprecated
as
Resolved
Sep 10 2025, 7:57 PM
2025-09-10 19:57:26 (UTC+0)
gerritbot
added a comment.
Sep 22 2025, 6:43 PM
2025-09-22 18:43:56 (UTC+0)
Comment Actions
Change #1148424
abandoned
by Umherirrender:
[mediawiki/core@master] tests: Replace phpunit-speedtrap with phpunit-slow-test-detector
Reason:
Replacement package not usable in its current form
gerritbot
added a comment.
Sep 22 2025, 6:44 PM
2025-09-22 18:44:34 (UTC+0)
Comment Actions
Change #1149986
abandoned
by Umherirrender:
[mediawiki/core@master] Demo: Upgrade to PHPUnit 10.5
Reason:
demo patch only
Umherirrender
removed a project:
Patch-For-Review
Sep 22 2025, 6:45 PM
2025-09-22 18:45:24 (UTC+0)
Umherirrender
unsubscribed.
Lucas_Werkmeister_WMDE
mentioned this in
T406470: Wikibase/WikibaseLexeme CI broken: PHP Fatal error: An alias (traitDumpSeedForReproducing) was defined for method dumpSeedForReproducing(), but this method does not exist
Oct 6 2025, 9:57 AM
2025-10-06 09:57:06 (UTC+0)
Jdforrester-WMF
closed subtask
T395743: Use of package ockcyp/covers-validator in libaries is not compatible with PHPUnit 10
as
Resolved
Oct 9 2025, 3:22 PM
2025-10-09 15:22:25 (UTC+0)
Jdforrester-WMF
updated the task description.
(Show Details)
Umherirrender
mentioned this in
T407015: Replace getMockForAbstractClass from tests (soft-deprecated with phpunit 10)
Oct 10 2025, 5:56 PM
2025-10-10 17:56:23 (UTC+0)
Umherirrender
mentioned this in
T407038: ShellBox tests override PHPUnit\Framework\TestCase::run(), marked as final in phpunit 10
Oct 10 2025, 9:10 PM
2025-10-10 21:10:45 (UTC+0)
bd808
updated the task description.
(Show Details)
Nov 7 2025, 10:31 PM
2025-11-07 22:31:59 (UTC+0)
A_smart_kitten
subscribed.
Jan 8 2026, 11:25 PM
2026-01-08 23:25:29 (UTC+0)
Jdforrester-WMF
added a parent task:
T232915: Red-green in PHPUnit code coverage are hard to read
Jan 26 2026, 3:20 PM
2026-01-26 15:20:46 (UTC+0)
gerritbot
added a comment.
Feb 8 2026, 7:20 PM
2026-02-08 19:20:31 (UTC+0)
Comment Actions
Change #1148424
restored
by Umherirrender:
[mediawiki/core@master] tests: Replace phpunit-speedtrap with phpunit-slow-test-detector
gerritbot
added a project:
Patch-For-Review
Feb 8 2026, 7:20 PM
2026-02-08 19:20:32 (UTC+0)
Daimona
updated the task description.
(Show Details)
Feb 23 2026, 4:07 PM
2026-02-23 16:07:34 (UTC+0)
gerritbot
added a comment.
Feb 23 2026, 4:33 PM
2026-02-23 16:33:48 (UTC+0)
Comment Actions
Change #1148424
merged
by jenkins-bot:
[mediawiki/core@master] tests: Replace phpunit-speedtrap with phpunit-slow-test-detector
ReleaseTaggerBot
added a project:
MW-1.46-notes (1.46.0-wmf.17; 2026-02-24)
Feb 23 2026, 5:00 PM
2026-02-23 17:00:14 (UTC+0)
Arendpieter
subscribed.
Edited
Feb 24 2026, 4:46 PM
2026-02-24 16:46:21 (UTC+0)
Comment Actions
The change in
caused
T418217
: the new ergebnis/phpunit-slow-test-detector extension assumes that the toString() output of tests follows the ClassName::methodName convention. Scribunto’s custom toString() prepends EngineName: , which breaks that assumption. I submitted a patch that hopefully fixes this:
Daimona
mentioned this in
T418217: wikibase-client-php83 CI fails: Class "LuaStandalone: Wikibase\Client\Tests\Integration\DataAccess\Scribunto\WikibaseEntityLibraryTest" does not exist
Feb 24 2026, 4:59 PM
2026-02-24 16:59:59 (UTC+0)
gerritbot
added a comment.
Feb 24 2026, 5:40 PM
2026-02-24 17:40:56 (UTC+0)
Comment Actions
Change #1243186 had a related patch set uploaded (by Arendpieter; author: Arendpieter):
[mediawiki/extensions/Scribunto@master] tests: Stop overriding TestCase::toString()
gerritbot
added a comment.
Feb 24 2026, 7:30 PM
2026-02-24 19:30:42 (UTC+0)
Comment Actions
Change #1243186
merged
by jenkins-bot:
[mediawiki/extensions/Scribunto@master] tests: Stop overriding TestCase::toString()
ReleaseTaggerBot
edited projects, added
MW-1.46-notes (1.46.0-wmf.18; 2026-03-03)
; removed
MW-1.46-notes (1.46.0-wmf.17; 2026-02-24)
Feb 24 2026, 8:00 PM
2026-02-24 20:00:32 (UTC+0)
DAlangi_WMF
subscribed.
Feb 25 2026, 10:16 AM
2026-02-25 10:16:23 (UTC+0)
gerritbot
added a comment.
Feb 25 2026, 7:53 PM
2026-02-25 19:53:38 (UTC+0)
Comment Actions
Change #1243948 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] tests: Adjust string keys in data provider or arguments on tests
gerritbot
added a comment.
Feb 26 2026, 4:09 PM
2026-02-26 16:09:14 (UTC+0)
Comment Actions
Change #1243948
merged
by jenkins-bot:
[mediawiki/core@master] tests: Adjust string keys in data provider or arguments on tests
Jdforrester-WMF
closed subtask
T358394: Stop using internal PHPUnit code in Scribunto
as
Resolved
Mar 2 2026, 2:57 PM
2026-03-02 14:57:14 (UTC+0)
bvibber
subscribed.
Mar 4 2026, 6:22 PM
2026-03-04 18:22:09 (UTC+0)
Daimona
updated the task description.
(Show Details)
Mar 13 2026, 3:51 PM
2026-03-13 15:51:43 (UTC+0)
gerritbot
added a comment.
Mar 16 2026, 4:28 PM
2026-03-16 16:28:35 (UTC+0)
Comment Actions
Change #1253561 had a related patch set uploaded (by Arendpieter; author: Arendpieter):
[mediawiki/core@master] phpunit: Migrate PHPUnit extensions and config to PHPUnit 10
Umherirrender
mentioned this in
T420851: Use of ExtensionJsonTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
Mar 22 2026, 8:15 PM
2026-03-22 20:15:03 (UTC+0)
Umherirrender
added a subtask:
T420851: Use of ExtensionJsonTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
Umherirrender
added a subtask:
T420853: Use of AbstractSchemaTestBase causes "Empty data set provided by data provider" failures under PHPUnit 10
Mar 22 2026, 8:23 PM
2026-03-22 20:23:22 (UTC+0)
Umherirrender
added a subtask:
T420854: LuaEngineTestBase causes "Empty data set provided by data provider" failures for lua errors under PHPUnit 10
Mar 22 2026, 8:31 PM
2026-03-22 20:31:08 (UTC+0)
Umherirrender
added a subtask:
T420856: Use of HTMLFormFieldTestCase causes "Empty data set provided by data provider" failures under PHPUnit 10
Mar 22 2026, 8:34 PM
2026-03-22 20:34:03 (UTC+0)
Umherirrender
added a subtask:
T420857: Skipping in EnWikiFormulaeTest does not work under PHPUnit 10
Mar 22 2026, 8:37 PM
2026-03-22 20:37:25 (UTC+0)
Umherirrender
added a subtask:
T420859: EntityHandlerTestCase causes invalid data provider failures under PHPUnit 10
Mar 22 2026, 8:56 PM
2026-03-22 20:56:35 (UTC+0)
Umherirrender
added a subtask:
T420860: OutputTransformStageTestBase causes invalid data provider failures under PHPUnit 10
Mar 22 2026, 9:05 PM
2026-03-22 21:05:51 (UTC+0)
Umherirrender
added a subtask:
T421178: Fix PHPUnit 10 deprecation notice "Providing invalid named argument $... for method ... is deprecated and will not be supported in PHPUnit 11.0." in wmf deployed code
Mar 24 2026, 9:14 PM
2026-03-24 21:14:04 (UTC+0)
Umherirrender
mentioned this in
T421178: Fix PHPUnit 10 deprecation notice "Providing invalid named argument $... for method ... is deprecated and will not be supported in PHPUnit 11.0." in wmf deployed code
gerritbot
added a comment.
Wed, Apr 1, 9:58 AM
2026-04-01 09:58:51 (UTC+0)
Comment Actions
Change #1253561
abandoned
by Arendpieter:
[mediawiki/core@master] phpunit: Migrate PHPUnit extensions and config to PHPUnit 10
Arendpieter
unsubscribed.
Wed, Apr 1, 9:59 AM
2026-04-01 09:59:36 (UTC+0)
Umherirrender
closed subtask
T421178: Fix PHPUnit 10 deprecation notice "Providing invalid named argument $... for method ... is deprecated and will not be supported in PHPUnit 11.0." in wmf deployed code
as
Resolved
Sun, Apr 19, 9:52 PM
2026-04-19 21:52:46 (UTC+0)
Log In to Comment
Content licensed under Creative Commons Attribution-ShareAlike (CC BY-SA) 4.0 unless otherwise noted; code licensed under GNU General Public License (GPL) 2.0 or later and other open source licenses. By using this site, you agree to the Terms of Use, Privacy Policy, and Code of Conduct.
Wikimedia Foundation
Code of Conduct
Disclaimer
CC-BY-SA
GPL
Credits