Run PHPUnit tests on only classes and tests which have changed
Switch branches/tags
Nothing to show
Clone or download
IcyApril Merge pull request #1 from gsdevme/patch-1
chore: allow PHPUnit >=6.0
Latest commit c3ef2cc May 18, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Initial version. May 14, 2017
tests Initial version. May 14, 2017
.gitignore Initial commit May 14, 2017 Initial version. May 14, 2017
composer.json chore: allow PHPUnit >=6.0 May 18, 2017
composer.lock Initial version. May 14, 2017
phpunit.xml Initial version. May 14, 2017
whatschanged Initial version. May 14, 2017

What's Changed?

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.