wiki.techinc.nl/tests/phpunit
daniel 5b0b54599b Allow DB config to be reloaded on the fly
This introduces $wgLBFactoryConf['configCallback'] which can be set to a
function that returns updates to be applied to $wgLBFactoryConf. The new
method LBFactory::autoreConfigure() can be called to check the callabck
and, if the config changed, reconfigure all existing LoadBalancers.

Reconfiguring the LoadBalancers causes all open connections to be
invalidated; however, any DBConnRef instances will remain valid and will
acquire a fresh connection from the LoadBalancer automatically when
appropriate.

As a proof of concept, this patch adds support for config reloding
into WikiExporter.

Bug: T298485
Change-Id: I6c3ffde62f6e038730736abe980befd90ec43e1a
2022-08-05 17:32:12 +02:00
..
data SVG Language selector should default to page language 2022-06-13 21:17:25 +00:00
docs
includes Allow DB config to be reloaded on the fly 2022-08-05 17:32:12 +02:00
integration/includes Merge "Cast results of Sqlite test to string [php 8.1]" 2022-08-03 12:44:52 +00:00
languages tests: Remove resetServiceForTesting after overrideConfigValues 2022-07-27 23:08:27 +02:00
maintenance Maintenance: allow legacy mOptions field to be manipulated. 2022-07-19 15:37:39 +02:00
mocks phpunit: Fix trivial dynamic property usages in tests 2022-07-29 01:59:23 +02:00
structure SettingsTest: check that the current config didn't trigger warnings. 2022-07-22 18:01:13 +02:00
suites phpunit: Fix trivial dynamic property usages in tests 2022-07-29 01:59:23 +02:00
tests Replace trivial usa of mock builder with createMock() shortcut 2022-07-15 16:43:48 +00:00
unit Allow DB config to be reloaded on the fly 2022-08-05 17:32:12 +02:00
bootstrap.maintenance.php Revert "phpunit: Default to vendor/bin/phpunit, remove suites.xml" 2022-06-09 14:15:54 +00:00
bootstrap.php Collect autoloader info in ExtensionProcessor 2022-06-07 17:39:00 +02:00
HamcrestPHPUnitIntegration.php
LessFileCompilationTest.php tests: Fix types in documentation by adding use statements 2022-05-29 07:11:15 +00:00
MediaWikiCliOptions.php
MediaWikiCoversValidator.php
MediaWikiGroupValidator.php
MediaWikiIntegrationTestCase.php Remove deprecated $wgParser 2022-08-03 14:40:16 +02:00
MediaWikiLangTestCase.php
MediaWikiLoggerPHPUnitExtension.php phpunit: Fix trivial dynamic property usages in tests 2022-07-29 01:59:23 +02:00
MediaWikiPHPUnitResultPrinter.php phpunit: Restore default progress reporter and add MWTestDox option 2022-06-12 19:22:57 +00:00
MediaWikiTestCaseTrait.php Replace trivial usa of mock builder with createMock() shortcut 2022-07-15 16:43:48 +00:00
MediaWikiUnitTestCase.php Migrate use of ${var}-style string interpolation 2022-07-29 02:45:09 +02:00
MWTestDox.php phpunit: Restore default progress reporter and add MWTestDox option 2022-06-12 19:22:57 +00:00
phpunit.php Revert "phpunit: Default to vendor/bin/phpunit, remove suites.xml" 2022-06-09 14:15:54 +00:00
README.md
ResourceLoaderTestCase.php resourceloader: Decouple some internal constructor args 2022-06-02 18:27:33 +01:00
suite.xml phpunit.xml.dist: Align contents with suite.xml 2022-07-12 10:32:32 +02:00

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:

https://www.mediawiki.org/wiki/Manual:PHP_unit_testing