Running PHPUnit in Laravel's Homestead

lesssugar picture lesssugar · Jan 23, 2015 · Viewed 9.3k times · Source

I'm using Homestead to serve my Laravel application. I'm trying to run PHPUnit. According to the docs:

An example test file is provided in the app/tests directory. After installing a new Laravel application, simply run phpunit on the command line to run your tests.

Well, when I'm "simply running" phpunit in my project root (inside the Homestead environment) I get this:

The program 'phpunit' is currently not installed.

Do I need to install PHPUnit separately then? The documentation does not mention it. What am I doing wrong?

Answer

Wader picture Wader · Jan 23, 2015

You can install it globally on the system using.

composer global require phpunit/phpunit

However, if you need different versions for different projects this can cause issues.

The alternative option is to use the version installed as part of your dependencies by referencing the path to your vendor directory.

./vendor/bin/phpunit

You could even add an alias to your aliases file in your ~/Homestead directory. That way you're always using the phpunit version that is installed with your project dependencies.

alias phpunit=./vendor/bin/phpunit

You'll need to restart the homestead box to make use of the alias.