tests: let us select/exclude ParserTests
authorAntoine Musso <hashar@free.fr>
Thu, 26 Nov 2015 20:25:03 +0000 (21:25 +0100)
committerHashar <hashar@free.fr>
Tue, 1 Dec 2015 12:26:10 +0000 (12:26 +0000)
The MediaWiki test suite is painfully slow and delays merging of
changes. More than half of the time is spent in
ParserTest_Parser⁄parserTests::testParserTest which is the PHPUnit
wrapping class for the parser tests.

This patch let us extract the parser tests so we can run them
independently. By running them parallely with the rest of the tests,
that will speed up the gate processing time.

Mark the MediaWikiParserTest and NewParserTest class as belonging to the
test group 'ParserTests'.  Will let us filter them out via PHPUnit
option --exclude-group

Introduce a new PHPUnit test suite 'parsertests' which loads the
MediaWiki core parser tests wrapper 'MediaWikiParserTest' and the suite
which loads the extensions parser tests (ExtensionsParserTestSuite.php).
This way we can run solely the parser tests with:

  cd tests/phpunit
  php phpunit.php --testsuite ParserTests

Wikimedia CI can then be configure to run two jobs:

 A) php phpunit.php --exclude-group ParserTests
 B) php phpunit.php --testsuite ParserTests

Bug: T114314
Change-Id: Ie819bab43163995048c073691c4c5d258f797c02

tests/phpunit/includes/parser/MediaWikiParserTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/suite.xml

index 95822ad..cd0f139 100644 (file)
@@ -7,6 +7,7 @@ require_once __DIR__ . '/NewParserTest.php';
  * an PHPUnit_Framework_Test object
  *
  * @group Parser
+ * @group ParserTests
  * @group Database
  */
 class MediaWikiParserTest {
index 6948082..5c6c17d 100644 (file)
@@ -673,6 +673,7 @@ class NewParserTest extends MediaWikiTestCase {
 
        /**
         * @group medium
+        * @group ParserTests
         * @dataProvider parserTestProvider
         * @param string $desc
         * @param string $input
index d93dafb..bdabdc1 100644 (file)
@@ -24,6 +24,10 @@ phpunit.php enables colors for other OSs at runtime
                <testsuite name="languages">
                        <directory>languages</directory>
                </testsuite>
+               <testsuite name="parsertests">
+                       <file>includes/parser/MediaWikiParserTest.php</file>
+                       <file>suites/ExtensionsParserTestSuite.php</file>
+               </testsuite>
                <testsuite name="skins">
                        <directory>skins</directory>
                        <directory>structure</directory>