Cannot find PHPUnit in include path is the error message I get when I try to run my code in phpstorm.
In the PHP Settings, my PHP level language is
5.4 (traits, short array syntax, etc.) and interpreter is
Name is user defined.
The error appears when I try to run the code and the exact message is this:
C:\xampp2\php\php.exe C:\Users\DELL\AppData\Local\Temp\ide-phpunit.php –no-configuration
Testing started at 2:34 PM …
Process finished with exit code 1
Cannot find PHPUnit in include path (.;C:\xampp2\php\PEAR)`
Just encountered this problem myself.
I’m unsure why it is unable to find PHPUnit in the include path (despite the fact that it is there, albeit in all lowercase).
I got around this by changing my IntelliJ Preferences for PHPUnit (under
PHP --> PHPUnit). I changed the
PHPUnit library settings to
Use custom loader and then specified the path to the
phpunit executable. On my mac, that was
I just discovered that
pear now installs PHPUnit as a
phpunit. It previously installed the PHPUnit source, which was really nice for reference and code completion in PHPStorm. I think that this is the reason things aren’t working any longer with PHPStorm, because it’s expecting a php executable and not a php archive.
So, I’m moving away from using
pear to install PHPUnit, and I’m using composer instead. This bundles PHPUnit directly as a dependency of my project, which makes it more portable than a system dependency. You’ll need to add
vendor/phpunit/phpunit as a PHP include path in your PHPStorm preferences. This will serve two purposes:
- PHPStorm can find the
- PHPStorm will index all the
PHPUnitclasses now, so you’ll get auto-complete. Yay!
To do this, go to Languages and Frameworks in the PhpStorm settings.
If you click on PHP, on the right you have your include paths
I had this problem after adding PHPUnit via composer.
I fixed this by choosing
use custom autoloader in
Settings -> Languages and Frameworks -> PHP -> PHPUnit, then adding /vendor/autoload.php as the location of the custom autoloader.
This is the way to do it without using composer, and using your global phpunit.
- Phpunit now comes with a phar file. My path was /usr/local/Cellar/phpunit/5.0.0/libexec/phpunit-5.0.0.phar
- PhpStorm Preferences -> Path to phpunit.phar -> select the phpunit phar
- That’s all, good stuff.
In addition to Ben’s answer, in phpStorm 7.1.3 it works by specifying the phpunit.phar location under the “use custom loader” option, for example:
“Path to script: /usr/share/php/phpunit.phar”
I had this same problem for PHPStorm 2017 using Vagrant. First go to
Settings -> Languages and Frameworks -> PHP and Add a remote interpreter, then go to
Settings -> Languages and Frameworks -> PHP -> PHPUnit click the + on top and click
by Remote Interpreter. If you’re using Composer autoloader, then enter your full Vagrant path to your autoloader file.
For future readers, to fix the same issue when using PHPStorm + Vagrant + PHPUnit by defining path to the global phpunit.phar (not composer)
While the tests runned successfully, I was missing the code completion. I had confirmed that
phpunit was in the PATH on my local machine, and to make sure, I had added
/usr/local/bin to the PHP Include paths in
PHP Settings. Still no code completion.
The reason: PHPstorm was looking for
phpunit.phar, not just
phpunit. To fix, on my local machine I established a symlink
phpunit.phar pointing to
$ cd /usr/local/bin/ $ sudo ln -s phpunit phpunit.phar
Then I reindexed the project, and code completion started working.