Ich erhalte diese Fehlermeldung, während ich versucht habe, testclass in phpunit auszuführen.
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'
könnte jemand eine Lösung dafür geben?
Hinweis: Ich benutze Windows 7.
Vielen Dank,
Ein möglicher Grund dafür kann sein, dass Ihr PHP-Include-Pfad nicht richtig gesetzt ist. Stellen Sie sicher, dass Sie über den entsprechenden Pfad zu PEAR verfügen. Für meine WAMP-Installation wäre das:
include_path=".;C:\wamp\bin\php\php5.3.8\PEAR\PEAR"
Es ist jedoch höchstwahrscheinlich auf Ihrem System unterschiedlich.
Eine Randnotiz: Sie sollten sowohl Ihre Apache php.ini als auch Ihre php.ini in Ihrem PHP Installationsordner aktualisieren. CLI die standardmäßige php.ini und Webanfragen (und oftmals andere Software, für die Sie PEAR -Pakete verwenden) für die Apache php.ini.
Hoffe das hilft.
Ihre Phpunit-Installation ist fehlerhaft. Die einfachste Lösung hierfür ist
pear install --force --alldeps phpunit/phpunit
und sehen, ob was geklappt hat.
Sie benötigen die aktuellste Birnenversion 1.9.4
. Wenn Sie diese Version nicht haben, installieren Sie sie mit go-pear.phar
. Wenn Sie von xammp nach etwas laufen, versuchen Sie nicht, die Birneninstallation zu reparieren, die sie verschicken. Normalerweise ist es viel einfacher, es erneut zu installieren.
Wenn Sie möchten, können Sie auch versuchen, das fehlende Paket zu installieren:
pear install phpunit/File_Iterator
(Fügen Sie einen --force
hinzu, wenn pear Ihnen mitteilt, dass es bereits installiert ist.)
Die Überprüfung der Konfiguration der Birne hat mir geholfen, das hier schnell zu finden:
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"
Alle Arten von schönen Dingen, die ich zu diesem Thema gelesen habe ... __ Überprüfen Sie zunächst, wo sich die Autoload.php befindet
$ find . -name 'Autoload.php' -type f
Ich gehe davon aus, dass sich Ihre Dateien in:
/usr/local/pear/share/pear
Ich habe Apple OSX 10.8.4 MAMP und MAMP-PRO installiert und ich habe mehrere andere PHP - Installationen .
Für das letzte habe ich Folgendes getan: Zuerst prüfen, ob eine php.ini im Verzeichnis vorhanden ist: /private/etc
Wenn nicht, mache:
$ Sudo cp /private/etc/php.ini.default /private/etc/php.ini
Fügen Sie am Ende der Datei ' php.ini ' die folgenden Zeilen ein:
; *** Added by <your-name> ****
include_path=".:/usr/local/pear/share/pear"
; *** Ended addition ****
Erledigt.
Für mich war das Update einfach (Ubuntu 12.04). Zuerst habe ich gesucht, ob die Datei existiert und wo sie sich befindet:
locate Autoload.php
Welcher sollte ähnliche Ergebnisse liefern:
/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
Dann habe ich meinen include_path überprüft, der in /etc/php5/Apache2/php.ini korrekt festgelegt wurde, aber in /etc/php5/cli/php.ini (der Befehlszeilenschnittstelle) noch auskommentiert wurde.
Diese Zeile funktionierte für mich nicht:
include_path = ".:/usr/share/php:/usr/include/php5"
Ziemlich einfach, ich weiß, aber es sind immer die kleinen Dinge, wenn Sie eine neue Maschine einrichten ;-)
Ich hatte das gleiche Problem bei der Verwendung von PhP 5.3 unter OSX 10.6 bei Verwendung der integrierten Serverkonfiguration.
Während PHPUnit erfolgreich in/usr/lib/php installiert wurde, bemerkte ich, dass Autoload.php (Zeile 45) versuchte, den File Iterator aus seinem aktuellen Verzeichnis (/ usr/lib/php/PHPUnit) und nicht aus dem Verzeichnis Pear zu laden installierte es unter (/ usr/lib/php/File). Könnte dies ein Fehler im Pear-Installationsprogramm sein?
Eine einfache ln -s-Datei/usr/lib/php/-Datei/usr/lib/php/PHPUnit/-Datei löste das Problem.
Ich verwende Ubuntu 14.04 und installierte phpunit über das Ubuntu Software Center, das nicht funktionierte.
Schließlich entferne ich es und ich folgte den Anweisungen von hier
wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
Sudo mv phpunit.phar /usr/local/bin/phpunit
Schau dir den Fehler an:
(include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php
Die Xampp versucht, diese Datei in include_path .;C:\php\pear
zu finden. Der Pfad für die Birne lautet .;C:\xampp\php\pear
.
Stellen Sie den richtigen Pfad für die Birne ein und es wird funktionieren. Ich habe es gerade geschafft.
Ich hatte das gleiche Problem mit Windows 7 und Xampp (php 5.6.11), ich habe alles versucht, Birne und Phpunit neu zu installieren, aber es hat nicht funktioniert. Als ich die Erlaubnis des Verzeichnisses C:\xammp\php\pear überprüfte, war es schreibgeschützt. Nachdem ich die Berechtigung geändert hatte, funktionierte es.
Bei Verwendung eines Open-Server-Bundles kann man auch feststellen, dass es einen zu kurzen include_path meldet.
Um dies unter Windows 7 zu beheben, können Sie dies tun
cd c:\Windows
mklink php.ini c:\OpenServer\userdata\temp\config\php.ini