webentwicklung-frage-antwort-db.com.de

schwerwiegender Fehler 'File/Iterator/Autoload.php' wurde beim Ausführen von phpunit nicht gefunden

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,

26
pearlsoft

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.

23
Syntaqx

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

10
edorian

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

Nach zwei Tagen Nachlesen habe ich es endlich mit Guides gelöst:

PC durch Hold/beschädigte Installation von Phpunit reinigen LINK

und mit dieser Anleitung neu installiert LINK

4
Teo

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.

3
Harm

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

3
jreuter

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.

2
DMCoding

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

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.

0
Akash Rajput

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