Run PHPUnit tests on only classes and tests which have changed

v1.0.1 2017-05-18 15:15 UTC

This package is auto-updated.

Last update: 2020-07-30 01:43:50 UTC


Run PHPUnit tests only on files which have changed. Useful during development stages when working with codebases with huge test suites.

How to use

  1. Make sure your project is set-up with Git
  2. Pull in through Composer
  3. Run ./vendor/bin/whatschanged
  4. Magic!


  • Only works with files ending with .php
  • Assumes your classes are in src and tests are mapped in the exact file structure in the tests folder.
  • If a Unit Test in the tests folder is changed, that test is re-run
  • Files which are monitored are those which are changed in the working tree since your last commit and those modified in the previous commit


If src/Git.php is changed we look for a test suite in tests/GitTest.php, if the test tests/GitTest.php is changed we run that test.


  • I wrote this in a few hours overnight once
  • This doesn't support Windows
  • You should run all your tests at least once before you merge your code in. This tool is purely to aid development whilst working with a large set of tests.