User:IHurbainPalatin (WMF)/Useful core test shortcuts for pre-push
Problem
edit- Shipping things to CI without running tests locally adds time to the ideal feedback loop
- Running ALL THE TESTS on core takes a fairly long time
- Running ALL THE TESTS on core tends to interact the with local dev environments, which may or may not be up-to-date on all skins, extensions, etc.
Objective
editKnowing how to locally run a "reasonably covering" set of "tests that have a higher chance to break with my current set of changes" (assuming said set is known).
HOWTO
editRun tests in a single directory or file
edit$ composer phpunit -- <path>
Useful suites
edit# core parser tests
$ composer phpunit -- tests/phpunit/suites/CoreParserTestSuite.phpunit
# core unit tests (beware: this probably runs less things than you think it does)
$ composer run phpunit -- --testsuite=core:unit
# all parser tests, including installed extensions
$ composer phpunit -- --testsuite=parsertests
Run with a non-default LocalSettings.php
edit# If no extensions are defined in this config file, this is equivalent to running
# CoreParserTestSuite.php as above; otherwise it also runs parserTests in extensions
$ MW_CONFIG_FILE=LocalSettings-stripped.php composer run phpunit -- --testsuite=parsertests