解析器测试

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Parser tests and the translation is 13% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎polski • ‎português do Brasil • ‎中文 • ‎日本語

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 tests/parser/ directory.

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:

php tests/parser/parserTests.php
Prior to MediaWiki 1.28, this file was located at tests/parserTests.php.

To run tests for just one file, use --file=... param. See more params with --help.

php tests/parser/parserTests.php --file=extensions/Kartographer/tests/parser/parserTests.txt

参见