web-dev-qa-db-fra.com

erreur fatale 'Fichier/Iterator/Autoload.php' introuvable lors de l'exécution de phpunit

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,

26
pearlsoft

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.

23
Syntaqx

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é)

10
edorian

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"
7
d g

Après 2 jours de post-lecture, j'ai finalement résolu avec les guides:

Nettoyer pc par hold/installation corrompue de Phpunit LINK

et réinstallé avec ce guide LIEN

4
Teo

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é.

3
Harm

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 ;-)

3
jreuter

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.

2
DMCoding

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
1
Stilgar

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.

0
Akash Rajput

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.

0

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
0
Ilya Sheershoff