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 & execution
Syntax is as following:
!! 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