Manual:Parser tests/cs

Testovací případ analyzátoru nejčastěji specifikuje wikitext (běžný vstup) a HTML (běžný výstup), aby se potvrdilo, že věci fungují podle očekávání. Skutečný výstup je porovnán s požadovaným výsledkem, a proto testovací případy analyzátoru (také známé jako testy analyzátoru) mohou být užitečné při zjišťování regresí.

Testovací případy analyzátoru jsou umístěny v adresáři. Rozšíření by měla umístit své testy do adresáře.

Mohou být spuštěny jak prostřednictvím testovací sady phpunit, tak pomocí samostatného skriptu parserTests.php. Selhání testu analyzátoru tedy vyvolá selhání Jenkinsova testu.



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
 * To indicate your parser tests are run in version 2 format, the first line in your parser test file must be

Enabling hooks
Abyste se ujistili, že se načte přípona, přidejte na začátek souboru:

Adding articles
In order to create a new article, the syntax is:

Layout of a parser test
Besides the test time, a test has a number of sections:  (optional),   (optional), ,   (optional),   (optional),   (optional),   (optional),   (optional).

The  and the various   sections are only relevant when running a test with Parsoid. Parsoid also allows additional configuration with additional test-specific options in the options section.

Syntaxe pro jednoduchý test je následující.

Configuration section
Pokud tam zadáte konfigurační nastavení, ujistěte se, že mezi výrazy nejsou žádné mezery, protože mezery nejsou oříznuty testovacím programem.

Options section
Each option should come on its own line.

changes format
 * disables the test.
 * runs the test only with the core's default parser unless Parsoid-specific HTML sections are present. The "php" name is a historical remnant from when Parsoid was a Node.js codebase.
 * or  (JSON format object) enable Parsoid-specific options.
 * Ex:  runs this test in only those 2 modes. By default, the test is run all available test modes for the test given the wikitext and html sections. In the common case, this defaults to running the test in wt2html, wt2wt, html2wt, html2html, and selser modes. The selser mode is an abbreviation for a test mode where the HTML section is edited in a number of automated ways which is then converted to wikitext using Parsoid's selective-serialization (selser henceforth) transformations. TODO: Add a link to a wikipage that explains Parsoid's various transformations.
 * In the JSON format object, the following keys are current recognized
 * : This is a comma separated list of Parsoid modes to run
 * : If selser is one of the test modes in the modes property, this property can optionally specify  to indicate automatic edits for this test should not be generated. If so, only manual edits as specified by the   property will be applied.
 * : This format is described separately below. This option will need to be paired with a   section in the test (see below)  that specifies the expected wikitext output when this edited HTML is converted (via selser) to wikitext by Parsoid.

This is an array of individual changes to apply to the DOM of the HTML generated by transforming wikitext. Each element of the array contains 3 or more elements: (a) jquery selector to select a DOM node (b) the type of change to apply to the selected node (c) the relevant values / content needed to apply the change specified.

More succinctly, each array element represents a jquery method call. So, [x,y,z...] becomes  So, ['fig', 'attr', 'width', '120'] is interpreted as

Right now, the following jquery methods are recognized:

See http://api.jquery.com/ for documentation of these methods.

"contents" as second argument calls the jquery .contents method on the results of the selector in the first argument, which is a good way to get at the text and comment nodes.

Wikitext sections

 * section: This is expected to be present in all tests is the that specifies the wikitext to be processed to HTML (or in Parsoid html2wt and wt2wt test modes, the wikitext to generate from the HTML sections).
 * section: This section is only relevant in Parsoid test runs. For tests that provide a manual set of changes to apply to the HTML generated from the wikitext section, this is the output expected when Parsoid converts that edited HTML back to wikitext.

HTML sections
TODO

Extension.json & parser tests
U rozšíření, která umístí své testy do  a používají soubor extension.json, se automaticky spustí testy analyzátoru. Pro rozšíření využívající starší systém načítání rozšíření mohou používat:

Running tests with parserTests.php
Chcete-li spustit testy analyzátoru, přejděte do kořenového adresáře místní instalace MediaWiki a z příkazového řádku proveďte následující:

Chcete-li spustit testy pouze pro jeden soubor, použijte  param. Zobrazit další parametry pomocí.

Parsoid-specific test runner options
These options aren't available with MediaWiki core's paresr test runner in MW 1.38 and prior. You can run tests in Parsoid mode via the  option. The best and most up-to-date documentation of all available options is to run



Nastavení globálních konfiguračních proměnných
Chcete-li nastavit výchozí globální proměnné pro všechny testy analyzátoru v rozšíření, použijte háček.

In a specific test, set the config variables as follows:



Viz též

 * QA and testing