Each parser test case specifies input wikitext and output HTML, to confirm that things operate as expected. The actual output is compared with the desired result, and thus, the parser test cases (also known as parser tests) can be helpful at spotting regressions.
The parser test cases reside in
tests/parser/parserTests.txt. Extensions should place their tests in a
They can be run both through the phpunit test suite and through the standalone parserTests.php -- so a parser test failure should trigger a Jenkins test failure.
Syntax & executionEdit
- Version 2 format
- Starting with 1.35, parser tests are required to be in the Version 2 format. Specifying version 2 indicates that the tests are ready to be run in "tidy" mode (See T249138).
- To indicate your parser tests are run in version 2 format, the first line in your parser test file must be
!! Version 2
Syntax is as follows:
!! Version 2 !! test Simple paragraph !! config wgRestrictDisplayTitle=false !! input This is a simple paragraph. !! result <p>This is a simple paragraph. </p> !! end
The config section can be omitted. If you specify configuration settings there, make sure you don't have any whitespace between your expressions, as whitespace isn't trimmed by the test runner.
In order to create a new article the syntax is:
!! article Template:Simple template !! text A ''simple'' template. !! endarticle
In order to be sure that the extension tag tag1 is loaded add at the beginning of the file:
!! hooks tag1 !! endhooks
Extensions that place their tests in
tests/parser/ and are using extension.json will automatically have their parser tests run. For extensions using the legacy extension loading system, they can use:
$wgParserTestFiles = __DIR__ . "/myParserTests.txt";
To run the parser tests, go to the root directory of your local MediaWiki installation and execute the following from the command line:
To run tests for just one file, use
See more params with
php tests/parser/parserTests.php --file=extensions/Kartographer/tests/parser/parserTests.txt
Setting global config variablesEdit
To set default global variables for all parser tests in an extension, use the ParserTestGlobals hook.
In a specific test, set the config variables as follows:
!! test Your Test Name !! config wgVariableName=true !! wikitext ...