Using guard-phpunit with composer
While reading through a book on unit testing with PHP I ran into a few issues using guard with phpunit. This article guides me (and maybe you) through the process of installing & configuring guard with PHPUnit.
First of we need to install phpunit globally using composer. To do this create a new hidden directory called .composer/packages in your home folder
Then inside that directory create a new composer.json file and fill it with your global dependencies in our case phpunit
Install phpunit by running composer install, this will install phpunit and all of its dependencies. After its completed we then need to edit our $PATH variable so we need to edit our
~/.bash_profile with the following
Check that everything is working by running
Which should return something like
PHPUnit 3.7.21 by Sebastian Bergmann.
Wicked we have phpunit installed but now for guard & it’s phpunit extension. To do this run both these commands (you may have to sudo too)
gem install guard
gem install guard-phpunit
Now unless things have changed when you run guard you’ll receive this error
Call to undefined method PHPUnit_Framework_TestResult::allCompletlyImplemented()
It’s due to a small typo in the method name, so to change it find guard-phpunits source files in my case it was located here
In here find lines 250 and 256 and replace
allCompletelyImplemented() Save and then run guard again.
I hope this helps anyone else in the same situation. All credit goes to this issue on Github