Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up unit tests #6549

Merged
merged 3 commits into from Oct 29, 2014
Merged

Speed up unit tests #6549

merged 3 commits into from Oct 29, 2014

Conversation

mnapoli
Copy link
Contributor

@mnapoli mnapoli commented Oct 29, 2014

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

@mnapoli mnapoli added the c: Tests & QA For issues related to automated tests or making it easier to QA & test issues. label Oct 29, 2014
@mnapoli mnapoli self-assigned this Oct 29, 2014
mnapoli added a commit that referenced this pull request Oct 29, 2014
@mnapoli mnapoli merged commit 0b7e1d5 into master Oct 29, 2014
@mnapoli mnapoli deleted the speed-up-tests branch October 29, 2014 21:15
@mattab mattab added this to the Piwik 2.9.0 milestone Oct 29, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: Tests & QA For issues related to automated tests or making it easier to QA & test issues.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants