piwik/piwik — pull request #6549 by mnapoli (2014-10-29 03:23:31+00:00)
Title: Speed up unit tests

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 `php -n`

About `--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".