wiki.techinc.nl/tests/phpunit
DannyS712 722ae6c6e1 Make UserDefTest a unit test
Building on my last few changes to use UserIdentityLookup and
TitleParser, plus the recent addition of UserNameUtils to the
DummyServicesTrait, its now fairly simple to make this a unit
test and retrieve services from DummyServicesTrait instead of
MediaWikiServices.

Add a 'hookContainer' option to
DummyServicesTrait::getDummyUserNameUtils(), because
subclasses of TypeDefTestCase don't have a helper method
createHookContainer() (normally this is provided by
MediaWikiTestCaseTrait). Instead, create a manual mock
HookContainer, like we did previously at NamespaceDefTest.

Also add more options to DummyServicesTrait to allow
callers to provide service instances, needed to avoid
creating two MediaWikiTitleCodec objects and to use
a hook container in NamespaceInfo.

This also required replacing uses of createNoOpMock()
in DummyServicesTrait, because that is also not available
in UserDefTest (its another feature of MediaWikiTestCaseTrait).
It may be worth exploring splitting MediaWikiTestCaseTrait into
the parts that are specific to MediaWiki (like HookContainer
or the Message system) and parts that are useful generally
(like createNoOpMock).

Change-Id: I25b8f0256d222d994173eee66f379fb5422994b5
2021-09-13 23:55:51 -04:00
..
data resourceloader: Append newline to JavaScript only if missing 2021-08-28 12:25:11 +00:00
docs
includes Make UserDefTest a unit test 2021-09-13 23:55:51 -04:00
integration/includes Merge "Improve DeletePage tests" 2021-09-09 21:10:39 +00:00
languages Cleanup mixed space/tab line indent 2021-09-04 00:52:31 +02:00
maintenance build: Updating dependencies 2021-07-22 03:36:05 +00:00
mocks Make UserDefTest a unit test 2021-09-13 23:55:51 -04:00
structure Merge "Structure test for all content models" 2021-09-13 16:12:50 +00:00
suites build: Updating dependencies 2021-07-22 03:36:05 +00:00
tests MockHttpTrait: support multiple MultiHttpClients 2021-08-12 11:30:14 -07:00
unit Make UserDefTest a unit test 2021-09-13 23:55:51 -04:00
bootstrap.maintenance.php Tests: Mark more closures as static 2021-02-07 13:26:56 +01:00
bootstrap.php
HamcrestPHPUnitIntegration.php Update Legoktm's email address 2021-05-02 05:39:37 +00:00
LessFileCompilationTest.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
Makefile
MediaWikiCliOptions.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
MediaWikiCoversValidator.php Update Legoktm's email address 2021-05-02 05:39:37 +00:00
MediaWikiGroupValidator.php
MediaWikiIntegrationTestCase.php ExternalStoreDB: Rename getMaster to getPrimary 2021-09-03 13:44:04 -07:00
MediaWikiLangTestCase.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
MediaWikiLoggerPHPUnitExtension.php
MediaWikiPHPUnitCommand.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
MediaWikiPHPUnitResultPrinter.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
MediaWikiTestCaseTrait.php Remove dependency on pimple external library 2021-06-24 07:18:23 +00:00
MediaWikiUnitTestCase.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
phpunit.php phpunit.php: Move remaining CLI options to env variables 2021-05-18 12:34:39 +02:00
README
ResourceLoaderTestCase.php build: Updating dependencies 2021-07-22 03:36:05 +00:00
run-tests.bat
suite.xml Remove PHPUnit hooks 2021-08-30 00:28:32 +02:00

== MediaWiki PHPUnit Tests ==

The unit and integration tests for MediaWiki are implemented using the PHPUnit testing
framework and require PHPUnit to run.


=== WARNING ===

Some of the integration tests are DESTRUCTIVE and WILL ALTER YOUR WIKI'S CONTENTS.

DO NOT RUN THESE TESTS ON A PRODUCTION SYSTEM OR ON ANY SYSTEM WHERE YOU NEED
TO RETAIN YOUR DATA.


== Installation ==

If you used composer to install MediaWiki's dependencies PHPUnit will already be available, unless
you explicitly specified the --no-dev flag during the install. In this case just run "composer update".

Otherwise follow the installation instructions in the
PHPUnit Manual at:

  https://phpunit.de/manual/current/en/installation.html


== Running tests ==

The tests are run from your operating system's command line.

Ensure that you are in the tests/phpunit directory of your MediaWiki
installation.


On Unix-like operating systems, the tests runs are controlled with a makefile.
Run command:

  make help

for a full list of options for running tests.


On Windows-family operating systems, run the 'run-tests.bat' batch file.


=== Writing tests ===

A guide to writing PHP unit tests for MediaWiki can be found at:

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