19
votes

I have PHPStorm 8.0.1.

PHPUnit is installed via PHAR archive like:

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/bin/phpunit

PHPUnit works via cli:

user@pc:/usr/bin$ cd ~
user@pc:~$ phpunit --version
PHPUnit 4.3.5 by Sebastian Bergmann.

I followed the instructions from JetBrains website https://www.jetbrains.com/phpstorm/webhelp/enabling-phpunit-support.html#d298258e897

In PHPStorm File->Settings tab PHP/PHPUnit the radio button Path to phpunit.phar is checked and value is set to /usr/bin/phpunit

I have a file with a test defined like:

class MyTest extends PHPUnit_Framework_TestCase {
...

At this point PHPStorm marks Undefined class PHPUnit_Framework_TestCase

I've restarted PHPStorm and Computer, but still have the same problem.

I've also tried adding /usr/bin to include path (right click on external libraries in project view, and choose option Configure PHP include paths) without success.

Here's the config for PHPStorm Settings, tab PHP (if it matters):

PHP Language level: 5.5 (finally, generators, etc.)
Interpreter: PHP 5.5 (5.5.9-1ubuntu4.5)
Include path is empty
2
If it's a PHAR file then it should have .phar extension -- that's a requirement, unfortunately. Just place phpunit.phar anywhere in your project -- it will be enough for IDE to index it.LazyOne
Is there a way not to include that file in the project, and somehow read it from another location (with phar extension)?YomY
Use symbolic link. Or place a copy (or symbolic link) in separate folder and reference that folder via "Include Paths" functionalityLazyOne
Thank you. It worked. I symlinked /usr/bin/phpunit to ~/phpUnitReference/phpunit.phar, and then added that dir to include path, and now it works. I was under the impression that PHPStorm has a way of referencing phpUnit automatically, but this works also. Thanks again. Would you like to make an answer, so I can accept it?YomY

2 Answers

35
votes

In order to have PHAR archive indexed by IDE it has to have .phar extension (that's a requirement).

The easiest solution is to place phpunit.phar somewhere in your project (usually it would be PROJECT_ROOT/vendor/ folder).

If having local copy is not desired (for whatever reason; although composer and other similar kind of tools (bower/npm/etc) are primarily aimed at keeping dependency stuff/packages locally), you may use symbolic links: either create a symbolic link to that file locally (e.g. PROJECT_ROOT/phpunit.phar --> /usr/bin/phpunit) .. or place a full copy (or such symbolic link) in separate folder somewhere on your disk and then reference it via PhpStorm's Settings | PHP | Include Paths functionality.

0
votes

The above fix by Calin worked for me too on PhpStorm 2019.1.1, so I'll post it as an answer for easier visibility:

Try right clicking on the .phar and clicking "Exclude phar from project", then clicking "Include phar into project" to refresh it.

In my case, both the .phar file and my .idea folder were pulled from a git commit. I guess PhpStorm didnt realise that the file needed reimporting.