On my machine the unit tests went from 20 seconds to 5 seconds! (with several plugins installed)
I've done some profiling to see where we have some room for improvements:
- I've removed usages of
sleep() in the tests and replaced with something else
- we can run the unit tests with the
--no-globals-backup: globals backup by PHPUnit was the most expensive operation in all the test run
- we can run without xdebug using
--no-globals-backup: unit tests should obviously not mess with global variables, so there shouldn't be any problem in theory. However there are some tests that do change the global variables, so for each of these tests I've used the
@backupGlobals enabled annotation.
E.g. you can use this command line:
$ php -n ../../vendor/bin/phpunit --testsuite UnitTests --no-globals-backup
Or you can also setup PhpStorm by setting
--testsuite UnitTests --no-globals-backup in the "Test Runner options" and
-n in "Interpreter options".