Test Driven Development (TDD) seems to be the phrase on every ones lips for sometime, but I have only recently gotten into doing TDD, and so far it is an enjoyable (albeit still slower) process. Having that confidence when you are making changes/refactoring, that everything still works, is a great feeling, especially when you spend most of your time working on projects with no tests, and having to manually test everything.
For TDD, I have been using PHPUnit, and at first, whilst becoming familiar with it, I was just switching to the terminal and
phpunit manually (for
phpunit --filter TEST to run a specific test/file). Now whilst this is an easy way to go about it,
it soon becomes quite tedious, switching from editor to terminal for every little change, but that is where your IDE can come in...
I use PhpStorm, and it has a built in way of running PHPUnit directly, so you don't have to ever leave the IDE to run your tests.
I say ever, but I still run
phpunit in the terminal, when I want to run the full test suite, but that is normally only when you
have finished what you are doing, to make sure everything is still green, as well as the tests you have been running with your changes.
Once setup, you can run your unit tests in PhpStorm, with the following commands
- Run test:
r- within a specific test with run just that test, or within the test file will run all tests in that file
- Rerun test:
r- will rerun the last test you ran, which means you can rerun the tests from where ever you are making changes, without having to switch back to the test file.
Now, this is all great, however, it does take a bit of setup, after a few times of trying to figure it out (seems it has to be done per project), I thought its time to get this noted down, so I don't have to figure it out every time.
So in PhpStorm, go to:
Edit Configurations... >
PHPUnit, and choose
Defined in configuration file
Use alternative configuration file, and then select your projects
If you try to run a test now, you will get this popup, with an Interpreter error at the bottom, click
Fix to continue the setup.
From here, select your
Cli Interpreter, and click
And the final setup, if you try to run a test, you will get this configuration error, click
Use Composer autoloader option, and set the path to your
You are now good to go, and can run your PHPUnit tests within PhpStorm.