Je reçois cette erreur alors que j'essayais de lancer testclass dans phpunit.
C:\xampp\htdocs\unittest>phpunit UnitTest usertest.php
PHP Warning: require_once(File/Iterator/Autoload.php): failed to open stream No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45
PHP Stack trace:
PHP 1. {main}() C:\xampp\php\phpunit:0
PHP 2. require() C:\xampp\php\phpunit:41
Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45
Call Stack:
0.0004 325352 1. {main}() C:\xampp\php\phpunit:0
0.0026 366520 2. require('C:\xampp\php\pear\PHPUnit\Autoload.php')xampp\php\phpunit:41
PHP Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45
PHP Stack trace:
PHP 1. {main}() C:\xampp\php\phpunit:0'
quelqu'un pourrait-il donner une solution à cela?
Note: J'utilise Windows 7.
Merci,
Une des raisons possibles est que votre include_path php n'est pas défini correctement. Assurez-vous de disposer du chemin approprié vers PEAR. Pour mon installation WAMP, ce serait:
include_path=".;C:\wamp\bin\php\php5.3.8\PEAR\PEAR"
Cependant, ce sera probablement différent sur votre système.
En passant, vous voudrez mettre à jour votre fichier Apache php.ini, ainsi que votre fichier php.ini situé dans votre dossier d'installation PHP. Le fichier php.ini par défaut, et les requêtes Web (et souvent les autres logiciels pour lesquels vous pourriez utiliser des packages PEAR) utiliseront le php.ini Apache.
J'espère que cela t'aides.
Votre installation de phpunit est cassée. La solution la plus simple pour cela est
pear install --force --alldeps phpunit/phpunit
et voir si ce qui a fonctionné.
Vous aurez besoin de la version la plus récente de 1.9.4
. Si vous ne possédez pas cette version, installez-la à l'aide de go-pear.phar
. Si vous utilisez xammp pour quelque chose, n'essayez pas de réparer l'installation de pear qu'ils expédient. Il est généralement beaucoup plus facile de le réinstaller.
Si vous le souhaitez, vous pouvez également essayer d’installer le paquet manquant:
pear install phpunit/File_Iterator
(ajoutez un --force
si pear vous dit qu'il est déjà installé)
Vérification de la configuration de poire m'a aidé à trouver ce quicky:
bash-3.2# pear config-show | grep php_dir
PEAR directory php_dir /usr/local/pear/share/pear
bash-3.2# vi /etc/php.ini
include_path = ".:/php/includes:/usr/local/pear/share/pear"
Toutes sortes de jolies choses que j'ai lues sur celui-ci . Commencez par vérifier l'emplacement du fichier Autoload.php .
$ find . -name 'Autoload.php' -type f
Je suppose que vos fichiers sont situés dans:
/usr/local/pear/share/pear
J'ai installé Apple OSX 10.8.4 MAMP et MAMP-PRO et plusieurs autres installations PHP .
Pour le dernier, j’ai fait ce qui suit: Commencez par vérifier s’il ya un php.ini dans le répertoire: /private/etc
Si non, faites:
$ Sudo cp /private/etc/php.ini.default /private/etc/php.ini
Ajoutez les lignes suivantes au bas du fichier ' php.ini ':
; *** Added by <your-name> ****
include_path=".:/usr/local/pear/share/pear"
; *** Ended addition ****
Terminé.
Pour moi, le correctif était simple (Ubuntu 12.04). J'ai d'abord fait une recherche pour m'assurer que le fichier existait et où il se trouvait:
locate Autoload.php
Ce qui devrait donner des résultats similaires à ceci:
/usr/share/php/File/Iterator/Autoload.php
/usr/share/php/PHP/CodeCoverage/Autoload.php
/usr/share/php/PHP/Depend/Autoload.php
/usr/share/php/PHP/Invoker/Autoload.php
/usr/share/php/PHP/Timer/Autoload.php
/usr/share/php/PHP/Token/Stream/Autoload.php
/usr/share/php/PHPCPD/Autoload.php
/usr/share/php/PHPUnit/Autoload.php
/usr/share/php/PHPUnit/Framework/MockObject/Autoload.php
/usr/share/php/PHP_CodeBrowser/Autoload.php
/usr/share/php/Text/Template/Autoload.php
Ensuite, j'ai vérifié mon chemin d'inclusion, qui était correctement défini dans /etc/php5/Apache2/php.ini, mais qui était toujours commenté dans /etc/php5/cli/php.ini (l'interface de ligne de commande).
Décommenter cette ligne a fonctionné pour moi:
include_path = ".:/usr/share/php:/usr/include/php5"
C'est assez simple, je le sais, mais ce sont toujours les petites choses lors de la configuration d'une nouvelle machine ;-)
J'ai eu le même problème en utilisant PhP 5.3 sur OSX 10.6 en utilisant la configuration de serveur intégrée.
J'ai remarqué que pendant que PHPUnit était installé avec succès sur/usr/lib/php, Autoload.php essayait (ligne 45) de charger le fichier Itérateur dans son répertoire actuel (/ usr/lib/php/PHPUnit) plutôt que le répertoire l’installait dans (/ usr/lib/php/File). Est-ce que ceci pourrait être un bogue dans l'installateur de Pear?
Un simple fichier ln -s/usr/lib/php/Fichier/usr/lib/php/PHPUnit/File a résolu le problème.
J'utilise Ubuntu 14.04 et j'ai installé phpunit via Ubuntu Software Center qui ne fonctionnait pas.
Finalement je l'enlève et j'ai suivi les instructions de ici
wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
Sudo mv phpunit.phar /usr/local/bin/phpunit
Regardez l'erreur:
(include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php
Xampp essaie de localiser ce fichier dans include_path .;C:\php\pear
Mais le chemin d'accès à la pear est .;C:\xampp\php\pear
.
Définissez le bon chemin pour la poire et cela fonctionnera. Je viens de le faire.
J'ai eu le même problème avec Windows 7 et xampp (PHP 5.6.11), j'ai essayé de réinstaller Pear et phpunit mais cela n'a pas fonctionné. Lorsque j'ai vérifié l'autorisation du répertoire C:\xammp\php\pear , il était en lecture seule. Après avoir modifié l'autorisation, il a commencé à fonctionner.
En outre, en utilisant un ensemble serveur ouvert, vous remarquerez qu’il indique un chemin d’inclusion trop court.
Pour résoudre ce problème sur Windows 7, vous pouvez le faire
cd c:\Windows
mklink php.ini c:\OpenServer\userdata\temp\config\php.ini