It was added in 2016 as part of SessionManager (Ic1ffea74f3, later re-attributed to Ibb3e023e4e) by Anomie. It wasn't used at the time. Basically, it is used for cases where we expect no logs, and the presence of logs will then produce a failing test. The point is to do something that PHPUnit will "complain" about by showing it. Emitting a notice or warning is one way, another is to simply echo it, since output is also unexpected and shown. The somewhat arbitrary mapping from log levels to PHP error codes isn't used. Later in 2017, he introduced the same class in php-session-serializer (I2ebf59414ef9a9) where this part was already removed and replaced by "echo". The version in core still used trigger_error. == Why now == Triggering E_USER_ERROR is deprecated in PHP 8.4+. Bug: T379445 Change-Id: Id1e1db80bc8fea39cd192716597e5e4a6f4966b0 (cherry picked from commit 5a1a8c14bd418c846498cd4ed99b77e45a0fcca1) |
||
|---|---|---|
| .. | ||
| data | ||
| docs | ||
| includes | ||
| integration/includes | ||
| maintenance | ||
| mocks | ||
| structure | ||
| suites | ||
| tests | ||
| unit | ||
| bootstrap.common.php | ||
| bootstrap.integration.php | ||
| bootstrap.maintenance.php | ||
| bootstrap.php | ||
| DynamicPropertyTestHelper.php | ||
| getPHPUnitExtensionsAndSkins.php | ||
| HamcrestPHPUnitIntegration.php | ||
| JsonSchemaAssertionTrait.php | ||
| MediaWikiCoversValidator.php | ||
| MediaWikiDeprecatedConfigPHPUnitExtension.php | ||
| MediaWikiGroupValidator.php | ||
| MediaWikiIntegrationTestCase.php | ||
| MediaWikiLangTestCase.php | ||
| MediaWikiLoggerPHPUnitExtension.php | ||
| MediaWikiPHPUnitResultPrinter.php | ||
| MediaWikiTeardownPHPUnitExtension.php | ||
| MediaWikiTestCaseTrait.php | ||
| MediaWikiUnitTestCase.php | ||
| MWTestDox.php | ||
| phpunit.php | ||
| README.md | ||
| ResourceLoaderTestCase.php | ||
| suite.xml | ||
| TestSelectQueryBuilder.php | ||
MediaWiki PHPUnit tests
WARNING: Integration tests may be destructive and alter or remove parts of your local database. We try to use temporary tables where possible, but you must never run tests on a production server or on a wiki where you don't want to lose data.
Running tests
If you haven't already, run composer update (specifically without --no-dev) in the MediaWiki core directory. This will install PHPUnit.
To read about how to run specific tests, refer to:
https://www.mediawiki.org/wiki/Manual:PHP_unit_testing/Running_the_tests
Writing tests
A guide to writing PHPUnit tests for MediaWiki can be found at: