PHPUnit: Avertissement: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit sur la ligne 42
lors de l'exécution de
- phpunit
J'obtiens l'erreur
Warning: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 42
Fatal error: require(): Failed opening required 'PHPUnit/Autoload.php' (include_path='.:') in /usr/local/bin/phpunit on line 42
/usr/local/bin/phpunit affiche les informations suivantes sur la ligne 42:
require 'PHPUnit/Autoload.php';
des suggestions pour résoudre ce problème?
Mise à jour (1):
J'ai été absent php.ini dans /etc/, j'ai donc un lien symbolique pour lire les MAMP php.ini. Maintenant, je reçois
php -r 'foreach (explode(":", get_include_path()) as $path) echo $path . PHP_EOL;'
.
/Applications/MAMP/bin/php/php5.3.6/lib/php
/usr/local/bin/pear
/usr/local/share/pear/PHPUnit
de course
- phpunit
est en cours d'exécution mais ne fournit pas de sortie.
Toutes les suggestions que pour vérifier prochaine?
Mise à jour (2):
probablement la cause de ce problème est lié à la question
Vous devez vous connecter pour publier un commentaire.
J'ai frappé un problème similaire sur MAC OSX Lion. J'ai installé phpunit avec la POIRE gestionnaire de paquet, et quand j'essaie de le lancer j'ai obtenu l'erreur comme décrit par udo. J'ai été en mesure de le résoudre avec les étapes suivantes:
curl http://pear.php.net/go-pear.phar > go-pear.php
sudo php -q go-pear.php
Lors de l'installation, il détecte si l'include_path de php.ini ne contient pas la POIRE répertoire PHP. Vous pouvez choisir de laisser le réparer automatiquement pour vous lorsque l'option.
J'ai rencontré ce problème lorsque je courais
phpunit.phar
de mon répertoire local, mais aussi a PHPUnit installé en tant que compositeur de la dépendance. Retrait de la PHPUnit compositeur de dépendance fixé mon problème.Vous devez avoir le dossier qui contient le PHPUnit source des fichiers sur votre PHP include path. Aussi,
PHPUnit/Autoload.php
a été ajouté à 3.6, et il est possible que vous avez une ancienne 3.5.x dossier source à la place. Vérifier les dossiers répertoriés à l'aide de(ou Windows)
et assurez-vous que l'un d'eux contient un
PHPUnit
dossier avecAutoload.php
.Mise à jour: au Sujet de votre mise à jour, vous voudrez probablement pour supprimer
/usr/local/share/pear/PHPUnit
du chemin parce que vous êtes, y comprisPHPUnit/Autoload.php
qui devrait être situé dans/usr/local/share/pear
qui est déjà dans le chemin de l'.À assurez-vous que PHPUnit est d'abord exécuter
phpunit --version
de sorte que vous pouvez voir la version installée. PHPUnit instancie tous les cas de test il des plans à exécuter avant de sortir quoi que ce soit. Si l'un de vos cas de test à cause d'une erreur fatale lors du chargement, parfois, aucune sortie n'est indiquée. C'est très frustrant. Commencez par créer le test le plus simple possible qui n'utilise pas du tout de votre code.L'exécution de ce test devrait produire un seul test de passage. Essayez-le et collez ce que vous voyez dans votre question.
À ajouter à la réponse à la question précédente: double-vérifier avec php.ini fichier est en cours de chargement et assurez-vous de modifier ce fichier avec d'autres parcours. J'ai utilisé de la façon suivante pour vérifier le chargé de php.ini
Qui m'a dit que le chargé de php.fichier ini a été /private/etc/php.ini
Ensuite, j'ai utilisé "qui" pour me dire où phpunit a été installé:
Puis j'ai ajouté que le chemin d'accès au php.fichier ini, donc il a fini par ressembler à ceci:
Seulement après que j'avais fait tout ce que fait le "phpunit --version" et les autres commandes fonctionnent comme prévu.
Il convient de noter que la plupart des utilisateurs qui sont confrontés à la problématique, ici, doit être en cours d'exécution de la commande
$ phpunit
à partir de l'invite de commande. quand ils obtenir l'erreur ci-dessus. Ce que la Plupart d'entre nous ne parviennent pas à comprendre le vrai problème est que le PHP utilisé dans l'invite de commande va surtout être très différent de celui en cours d'exécution de choses pour vous à votre serveur web. Personnellement, j'utilise lampp et même si j'avais correctement installé phpunit à l'aide de la poire avec succès,je n'ai pas réalisé cette partie essentielle pendant des heures.
Remède
- pour quand vous en avez besoin pour exécuter un script PHP qui nécessite des ressources dans l'include_path, assurez-vous que php.ini pour le PHP binaire à l'aide de votre équipés de manière adéquate. cas et le point dans mon ubuntu 12.04 installation avec xampp mes deux php les fichiers binaires comprennent
À la fois le php.les fichiers ini doit avoir votre souhaitable et correcte de l'include_path de la déclaration pour vous de démarrer correctement toutes les lignes de commande des scripts et des serverside(apache servi de scripts).
Revenir à notre question à la main après avoir correctement configurer le php.ini n'oubliez pas de
Erreurs les plus courantes que vous obtenez des problèmes lors de la Modification de Fichiers dans Linux/*nix Systèmes
n'oubliez pas d'exécuter chwon de posséder le php.fichier ini ou autre vous ne parviennent même à les modifier
n'oubliez pas d'exécuter la commande chmod et de modifier les valeurs pour vous permettre d'enregistrer vos modifications après vous pouvez y revenir à tout (contrôle d'accès sur le fichier que j'ai.e chwon et chmod à l'état précédent) à la façon dont ils ont été et qu'il devrait être ok après le redémarrage du terminal et apache.
Bonne Chance
La remarque de Howard Lo sur Mac OSX est très utile avec la remarque de Sebastian Perez. Parce que la remarque n'est pas que belle formaté, il peut-être négligé. Après la mise à jour de Mavericks OSX, j'ai couru pour la deuxième fois à cette question, U a décidé de créer cette Apple OSX solution pour ce problème. Je dois dire que j'ai également installé MAMP PRO avec plusieurs version de php, donc j'ai besoin d'être très précis.
Vérifier si vous avez un php.ini installé dans /private/etc. Si pas de problème de la commande:
$ sudo cp /private/etc/php.ini.défaut /private/etc/php.ini
Obtenir la plus récente de php archive de poire
$ curl http://pear.php.net/go-pear.phar > go-pear.php
Installer l'archive avec
$ sudo php -q go-pear.php
Lors de l'installation, il détecte si l'include_path de php.ini ne contient pas la POIRE répertoire PHP. Vous pouvez choisir de laisser le réparer automatiquement pour vous lorsque l'option.
Après ces étapes, j'ai dû installer phpunit à nouveau en utilisant les commandes suivantes:
$ sudo pear channel-discover pear.phpunit.de
$ sudo pear channel-discover composants.ez.pas de
$ sudo pear channel-discover pear.symfony-project.com
$ sudo pear install phpunit/PHPUnit
Un grand merci à Howard Lo et Sébastien Perez.