Performance Improvement Running PHPUnit
We're using PHPUnit to add integration and unit tests at work and normally when I want to test a single I use --filter
to pick just the one I want:
vagrant@precise64:/var/www$ vendor/bin/phpunit -c tests --filter UserTest::testLoginWithInvalidPassword
PHPUnit 3.7.31 by Sebastian Bergmann.
Configuration read from /var/www/tests/phpunit.xml
.......
Time: 6.82 seconds, Memory: 17.25Mb
OK (7 tests, 7 assertions)
Almost 7 seconds for 7 tests is a lot...
When I just just --filter
PHPUnit is loading all the other unit test classes and then running just the ones that match the --filter
. By specifiying the file I want to run the test from I can get better performance:
vagrant@precise64:/var/www$ vendor/bin/phpunit -c tests --filter UserTest::testLoginWithInvalidPassword tests/models/UserTest.php
PHPUnit 3.7.31 by Sebastian Bergmann.
Configuration read from /var/www/tests/phpunit.xml
.......
Time: 4.84 seconds, Memory: 12.50Mb
OK (7 tests, 7 assertions)
I'm sure for any PHPUnit masters this is old information but I've never seen it so I thought others might find it interesting.
Scott Keck-Warren
Scott is the Director of Technology at WeCare Connect where he strives to provide solutions for his customers needs. He's the father of two and can be found most weekends working on projects around the house with his loving partner.
Top Posts
- Working With Soft Deletes in Laravel (By Example)
- Fixing CMake was unable to find a build program corresponding to "Unix Makefiles"
- Upgrading to Laravel 8.x
- Get The Count of the Number of Users in an AD Group
- Multiple Vagrant VMs in One Vagrantfile
- Fixing the "this is larger than GitHub's recommended maximum file size of 50.00 MB" error
- Changing the Directory Vagrant Stores the VMs In
- Accepting Android SDK Licenses From The OSX Command Line
- Fixing the 'Target class [config] does not exist' Error
- Using Rectangle to Manage MacOS Windows