Cannot find PHPUnit in include path
Est le message d'erreur que j'obtiens lorsque j'essaie d'exécuter mon code dans phpstorm.
Dans les paramètres PHP, mon PHP est 5.4 (traits, short array syntax, etc.)
et l'interpréteur est Name(5.4.7)
où Name
est défini par l'utilisateur.
L'erreur apparaît lorsque j'essaie d'exécuter le code et le message exact est le suivant:
C:\xampp2\php\php.exe C:\Users\Dell\AppData\Local\Temp\ide-phpunit.php --no-configuration
C:\xampp2\htdocs\ft-website
Les tests ont commencé à 2:34 PM ...
Processus terminé avec le code de sortie 1
Impossible de trouver PHPUnit dans le chemin d'inclusion (.; C:\xampp2\php\PEAR) `
Je viens de rencontrer ce problème moi-même.
Je ne sais pas pourquoi il est incapable de trouver PHPUnit dans le chemin d'inclusion (malgré le fait qu'il soit là, bien qu'en minuscules).
J'ai contourné cela en modifiant mes préférences IntelliJ pour PHPUnit (sous PHP --> PHPUnit
). J'ai changé le PHPUnit library
paramètres à Use custom loader
, puis spécifié le chemin d'accès à l'exécutable phpunit
. Sur mon mac, c'était /usr/local/Cellar/php54/5.4.26/bin/phpunit
.
MISE À JOUR:
Je viens de découvrir que pear
installe désormais PHPUnit en tant que phar
nommé phpunit
. Il avait précédemment installé la source PHPUnit, ce qui était vraiment bien pour la référence et la complétion de code dans PHPStorm. Je pense que c'est la raison pour laquelle les choses ne fonctionnent plus avec PHPStorm, car il attend un exécutable php et non une archive php.
Donc, je m'éloigne de l'utilisation de pear
pour installer PHPUnit, et j'utilise composer à la place. Cela regroupe PHPUnit directement en tant que dépendance de mon projet, ce qui le rend plus portable qu'une dépendance système. Vous devrez ajouter vendor/phpunit/phpunit
en tant que PHP inclure le chemin dans vos préférences PHPStorm. Cela servira à deux fins:
phpunit
maintenantPHPUnit
maintenant, donc vous obtiendrez une saisie automatique. Yay!Pour ce faire, accédez à Langues et cadres dans les paramètres PhpStorm. Si vous cliquez sur PHP, à droite vous avez vos chemins d'inclusion
J'ai eu ce problème après avoir ajouté PHPUnit via le compositeur.
J'ai corrigé cela en choisissant use custom autoloader
dans Settings -> Languages and Frameworks -> PHP -> PHPUnit
, puis en ajoutant /vendor/autoload.php comme emplacement de l'autochargeur personnalisé.
C'est la façon de le faire sans utiliser le compositeur et en utilisant votre phpunit global.
En plus de la réponse de Ben, dans phpStorm 7.1.3, cela fonctionne en spécifiant l'emplacement de phpunit.phar sous l'option "utiliser un chargeur personnalisé", par exemple:
"Chemin d'accès au script: /usr/share/php/phpunit.phar"
J'ai eu ce même problème pour PHPStorm 2017 en utilisant Vagrant. Allez d'abord à Settings -> Languages and Frameworks -> PHP
et Ajouter un interprète distant, puis accédez à Settings -> Languages and Frameworks -> PHP -> PHPUnit
cliquez sur le + en haut et cliquez sur by Remote Interpreter
. Si vous utilisez Composer autoloader, entrez votre chemin Vagrant complet vers votre fichier autoloader.
Pour les futurs lecteurs, pour résoudre le même problème lors de l'utilisation de PHPStorm + Vagrant + PHPUnit en définissant le chemin vers le phpunit.phar global (pas compositeur)
Alors que les tests se sont déroulés avec succès, il me manquait l'achèvement du code. J'avais confirmé que phpunit
se trouvait dans le CHEMIN sur ma machine locale, et pour m'assurer, j'avais ajouté /usr/local/bin
au PHP Inclure les chemins dans PHP Settings
. Toujours pas de complétion de code.
La raison: PHPstorm recherchait phpunit.phar
, pas seulement phpunit
. Pour corriger, sur ma machine locale, j'ai créé un lien symbolique phpunit.phar
pointant vers phpunit
:
$ cd /usr/local/bin/
$ Sudo ln -s phpunit phpunit.phar
Ensuite, j'ai réindexé le projet et l'achèvement du code a commencé à fonctionner.