A Simple PHP Testrunner using PHPUnit

Posted on September 9, 2013

I've been wanting to develop a node.js module for a while. I finally got round to doing so last weekend.

What is phpunit-testrunner?

phpunit-testrunner is a very simple automatic testrunner, inspired by karma another testrunner for javascript. It was designed to automatically run your phpunit test suite when you modify a file, making it very handy to see the effect of a file change on the rest of your codebase.

Why is it important?

Test-Driven Development (TDD) teaches us to write tests first. Every step in the test-implement cycle, includes a continuous 'run test' step.

The phpunit-testrunner removes the need to run your test suite every time you modify a file (or add a new file). This makes development that one step easier. With realtime updates, you should immediately see the effects of any change made.

How does it work?

It works by watching a bunch of files (or directories). When any of those files are modified (or a new file is added to the directory being watched), phpunit-testrunner will automatically execute phpunit using the command options your provide.


$ npm install -g phpunit-testrunner


  • Firstly, you'll need to create a config file. The config file should have an object with the following parameters:
    • rootPath [string]
    • fileOrDirectoriesToWatch [array] of directories/files
    • commandArguments [array] of phpunit command line arguments

    For example,
                "rootPath": ".",
                "fileOrDirectoriesToWatch": [
                "commandArguments": [
  • Execute the testrunner
    $ phpunit-testrunner -c path/to/configuration/file.js

If you have any issues using the testrunner please report an issue on the Github Issues Page