I enjoy programming in my free time and spend a considerable amount of time hacking away at open source projects as well as implementing those projects for various clients. My recent interests have included messaging (RabbitMQ specifically), Node.js, NoSQL, and alternative JVM languages such as Scala. You can also occasionally find me at several conferences speaking on some of my passions as well. Of course, got to balance all of this out with my wonderful baby girl and beautiful wife. James is a DZone MVB and is not an employee of DZone and has posted 14 posts at DZone. You can read more from them at their website. View Full User Profile

Using Guard + PHPUnit for Great Good!

09.16.2012
| 890 views |
  • submit to reddit

Another day, another post about the tooling I’ve been using to make PHP development bearable. Today I’ll share guard-phpunit, which I discovered thanks to a tip by @ctshryock.

I’ve been using this as a replacement for watchr which I use to autorun tests whenever I make code changes. I’ve switched to guard for a number of reasons, chief amongst them being the awesome notification support. You can use growl, libnotify and rb-notifu to notify test pass/fail.

Here’s the Guardfile I’ve been using. This is tailored for Zend Framework 2 so that whenever I modify a php class under a module directory it will run the tests for that particular class. Rapid feedback for the win!

guard 'phpunit', :tests_path => 'test', :cli => '-c test/phpunit.xml' do
  # Watch tests files
  watch(%r{^.+Test\.php$})

  # Watch library files and run their tests
  watch(%r{^module/(.+)/src/.+/(.+)/(.+)\.php}) { |m| "test/#{m[1]}/#{m[2]}/#{m[3]}Test.php" }
end

 

 

Published at DZone with permission of James Carr, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)