Run PHPUnit tests only on files which have changed. Useful during development stages when working with codebases with huge test suites.
- Make sure your project is set-up with Git
- Pull in through Composer
- Run
./vendor/bin/whatschanged
- Magic!
- Only works with files ending with
.php
- Assumes your classes are in
src
and tests are mapped in the exact file structure in thetests
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.