wiki.techinc.nl/tests/phpunit
C. Scott Ananian 4497f99796 Parser: initialize preprocessor in constructor
Initializing the preprocessor in the constructor allows better
dependency injection, and removes code complexity caused by
lazy initialization.  Any use of the parser is going to end
up creating the preprocessor in any case, so deferring the
initialization doesn't save any performance.  (Best performance
is given by not creating the Parser in the first place if it
is not needed, which is what DI allows.)

Old code tried to unbreak cyclic dependencies by setting the
preprocessor to null.  This is somewhat of a lost cause,
since there are a number of other cyclic dependencies
involving the parser, including StripState, LinkHolders,
etc.  The code complexity is not worth it, given how
ineffective it is in any case.

This is part of T275160 in so far as it allows
Parser::getPreprocessor() to be a simple getter, and thus
(once this patch is merged) we can safely replace any
direct access to Parser::$mPreprocessor with a call to
Parser::getPreprocessor().

Bug: T275160
Change-Id: I38c6fe7d5a97badffdbf34d8b9d725756ed86514
2021-03-16 22:37:40 +00:00
..
data JPEG2000 MIME fixes 2021-03-15 21:43:24 +01:00
docs
includes Parser: initialize preprocessor in constructor 2021-03-16 22:37:40 +00:00
integration/includes Merge "Introduce Tidy service" 2021-03-16 19:29:17 +00:00
languages Merge "Add converter for the Talysh language (tly)" 2021-02-23 12:45:31 +00:00
maintenance Tests: Mark more more closures as static 2021-02-09 02:55:57 +00:00
mocks Remove unused MockWebRequest from tests 2021-03-14 09:50:22 -07:00
skins Improve some class properties documentation in tests 2021-02-02 16:48:15 +00:00
structure SpecialPageFatalTest: add names to test cases 2021-03-13 02:49:49 +00:00
suites Fix typo in ParserTestTopLevelSuite 2021-02-19 15:51:50 +01:00
tests Tests: Mark more more closures as static 2021-02-09 02:55:57 +00:00
unit Parser: initialize preprocessor in constructor 2021-03-16 22:37:40 +00:00
bootstrap.maintenance.php Tests: Mark more closures as static 2021-02-07 13:26:56 +01:00
bootstrap.php
HamcrestPHPUnitIntegration.php Fix and add various type hints 2021-02-16 17:22:15 +00:00
LessFileCompilationTest.php
Makefile
MediaWikiCliOptions.php
MediaWikiCoversValidator.php
MediaWikiGroupValidator.php
MediaWikiIntegrationTestCase.php Drop wgContLang, deprecated in 1.32 2021-03-08 13:27:28 -06:00
MediaWikiLangTestCase.php
MediaWikiLoggerPHPUnitExtension.php
MediaWikiPHPUnitCommand.php
MediaWikiPHPUnitResultPrinter.php
MediaWikiPHPUnitTestListener.php
MediaWikiTestCaseTrait.php Merge "Add mock for numParams to MediaWikiTestCaseTrait" 2021-02-17 22:37:07 +00:00
MediaWikiUnitTestCase.php
phpunit.php Safer autoloading with respect to file-scope code 2021-01-11 11:59:36 +11:00
README
ResourceLoaderTestCase.php resourceloader: Allow modules to mark themselves as ES6-only 2021-03-04 14:53:36 -05:00
run-tests.bat
suite.xml

== 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