The tests in the structure PHPUnit testsuite are used to verify the
Autoloader, ResourceLoader definitions and some basic other tests.
They are not run by Jenkins for MediaWiki extensions since we invoke:
phpunit.php --testsuite extensions
Add the structure directory to the 'extensions' testsuite. That will
start enforcing them on all extensions, so need to be merged with care.
We will want to backport this patch on all release branches we support
and make sure they pass for all extensions/branches :-/
Bug: T78798
Change-Id: Icb88fb3f10d203cfcb61c36c9c92864b92d6739c
Add the LessFileCompilationTest test case class, which represents the
validation of a LESS file by compilation.
Add the LessTestSuite test suite, which tests all LESS files registered
with the ResourceLoader, and use this to rewrite the checkLess.php
maintenance script.
Bug: 54665
Change-Id: Iedb8dc31e4817d8b4e40b655cf9b8fb092979e90
This has the effect of excluding the tests themselves from the code coverage
and including files that no test loads.
Change-Id: I65674ca3569d1ae6484b6769366213d71c0bdbc4
To better control what we are really covering, this patch uses PHPUnit
forceCoversAnnotation option. That makes it to record covering if and
only if @covers is used.
Also rewrapped the options to uses tabulations.
Change-Id: I467a5077a65b93cce08072a8d088b0b9c652a426
Parser tests are registeredd by appending one or more .txt files to the
$wgParserTestFiles global setting. Since this is shared with MediaWiki
core, I have made MediaWikiParserTest a factory of PHPUnit testsuite
which would filter in/out extensions tests.
The `extensions` test suite now has a second test suite builder which is
simply a wrapper around MediaWikiParserTest factory.
Play cases:
$ php phpunit.php --group Parser --tap
Runs any parser tests including the ones coming from extensions.
With an extension having parser tests such as Cite:
$ php phpunit.php --testsuite extensions --tap
// Extensions tests are run including parser tests.
bug: 42506
Change-Id: Icc3e9d30706b32149aa9dd18552e4241ec4af67e
The phpunit root directory has two test file:
AutoLoaderTest.php
StructureTest.php
The later was registered in phpunit under the `structure` test suite
while the former was not registered and hence never run (bug 47750).
This patch moves both files under the `structure` subdirectory and
change the suite to look in that directory. That will avoid us having
to manually maintain a list of test files.
Updated the __DIR__ in StructureTest.php.
Change-Id: I419c9157f32bdf7e1ff26a42f4bb3f3922b7be37
default .. 2s -> 10s
medium ... 10s -> 30s
I originally thought that using PHPUnit timeout system was a good idea
but that is causing more harm than being helpful. Now default to ten
seconds.
Change-Id: If10a9b6df967130838a253d986b2ed623d8e3b0a
PHPUnit has a timeout protection system which let us put tests in three
categories having different timeout (default: 1s, 10s, 60s). The timeout
only happens when using strict mode and having PHPUnit Invoker
installed.
Recently, the continuous integration server has been upgraded and the
PHPUnit Invoker was installed to let us run a serie of tests related to
dumping the database to XML. They do need some timeout system. Suddenly,
some tests started failing.
By default all tests are in the 1 second timeout group. Since we use a
sqlite backend and the server hard disk can get busy, some test can take
more than one second to execute.
This patch raise the default (small group) timeout to 2seconds and
explicitly define the value for the two other groups (medium and large)
using PHPUnit default values.
Change-Id: I2f5613b0c0215023c413dec8e84804175d8c8d6e
Adds tests/phpunit to the include_path to let PHPUnit find out our files.
Also add to change the suite.xml paths from './path' to 'path' so
stream_resolve_path() correctly find out the suite by using include_path
suite.xml now comes with colors=true. Under Windows, we override the
setting by forging a --no-colors. One can still force color usage
under windows by using --colors.
lack of fuzz testing and other parser test options, and the DB creation is still a little flaky.
A MediaWikiPHPUnitCommand class had to be created to allow for custom CLI parameters.