Подтвердить что ты не робот

Неустранимая ошибка "Файл/Итератор/Autoload.php" не найден при запуске phpunit

Я получаю эту ошибку, пока я пытался запустить testclass в 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'

может ли кто-нибудь дать решение?

Примечание. Я использую окна 7.

Спасибо,

4b9b3361

Ответ 1

Возможная причина, по которой это может произойти, заключается в том, что ваш php include_path установлен неправильно. Убедитесь, что у вас есть подходящий путь к PEAR. Для моей установки WAMP это будет:

include_path=".;C:\wamp\bin\php\php5.3.8\PEAR\PEAR"

Однако, скорее всего, он будет отличаться в вашей системе.

Обратите внимание, что вы захотите обновить оба apache php.ini, а также ваш php.ini, расположенный в папке установки PHP. CLI по умолчанию php.ini и веб-запросы (а часто и другое программное обеспечение, которое вы можете использовать для пакетов PEAR) будут использовать apache php.ini.

Надеюсь, что это поможет.

Ответ 2

Ваша установка phpunit нарушена. Самое легкое исправление для этого -

pear install --force --alldeps phpunit/phpunit

и посмотрим, что получилось.

Вам понадобится самая последняя версия груши 1.9.4. Если у вас нет этой версии, установите ее с помощью go-pear.phar. Если вы используете xammp для чего-то, не пытайтесь исправить установку груши, которую они отправляют. Обычно LOT легче переустанавливать.

Если вы хотите, вы можете просто установить недостающий пакет:

pear install phpunit/File_Iterator

(добавьте --force, если груша сообщает вам, что она уже установлена)

Ответ 3

Проверка конфигурации груши помогла мне найти это быстро:

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"

Ответ 4

Через 2 дня после чтения, наконец, я решил с помощью гидов:

Очистить компьютер, удерживая/поврежденную установку Phpunit LINK

и переустановить с помощью этого руководства LINK

Ответ 5

Для меня исправление было простым (Ubuntu 12.04). Сначала я выполнил поиск, чтобы убедиться, что файл существует и где он находится:

locate Autoload.php

Который должен возвращать результаты, подобные этому:

/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

Затем я проверил свой include_path, который был правильно установлен в /etc/php 5/apache2/php.ini, но все еще был закомментирован в /etc/php 5/cli/php.ini(интерфейс командной строки).

Разоружение этой строки сработало для меня:

include_path = ".:/usr/share/php:/usr/include/php5"

Довольно я знаю, но это всегда мелочи при настройке новой машины; -)

Ответ 6

Все хорошие вещи, которые я прочитал на этом. Сначала проверьте, где находится Autoload.php. Использование:

$ find . -name 'Autoload.php' -type f

Я предполагаю, что ваши файлы находятся в:

/usr/local/pear/share/pear


У меня установлен Apple OSX 10.8.4 MAMP и MAMP-PRO, и у меня есть несколько других установок PHP.
Для последнего я сделал следующее: Сначала проверьте, есть ли в каталоге php.ini:  /private/etc
Если нет, выполните:

$ sudo cp /private/etc/php.ini.default /private/etc/php.ini

Добавьте следующие строки внизу файла "php.ini":

; *** Added by <your-name> ****
include_path=".:/usr/local/pear/share/pear"
; *** Ended addition ****

Готово.

Ответ 7

У меня была такая же проблема, используя PhP 5.3 на OSX 10.6, используя встроенную конфигурацию сервера.

Я заметил, что, хотя PHPUnit успешно устанавливается в /usr/lib/php, Autoload.php пытался (строка 45) загружать Итератор файлов из его текущего каталога (/usr/lib/php/PHPUnit), а не каталог Pear устанавливал его в (/usr/lib/php/File). Может ли это быть ошибкой в ​​установщике Pear?

Простой файл ln -s/usr/lib/php/File/usr/lib/php/PHPUnit/File решил проблему.

Ответ 8

Я использую Ubuntu 14.04, и я установил phpunit через Ubuntu Software Center, который не работал.

Наконец, я удаляю его и следую инструкциям здесь

wget https://phar.phpunit.de/phpunit.phar  
chmod +x phpunit.phar  
sudo mv phpunit.phar /usr/local/bin/phpunit

Ответ 9

Кроме того, используя пакет open-server, можно заметить, что он слишком коротко передает include_path.

Чтобы исправить это в Windows 7, вы можете сделать

cd c:\Windows
mklink php.ini c:\OpenServer\userdata\temp\config\php.ini

Ответ 10

У меня была такая же проблема с Windows 7 и xampp (php 5.6.11), я пробовал переустановить грушу и phpunit, но это не сработало. Когда я проверил разрешение каталога C:\xammp\php\pear, он был доступен только для чтения. После того, как я изменил разрешение, он начал работать.

Ответ 11

Посмотрите на ошибку:

 (include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php

Xampp пытается найти этот файл в include_path .;C:\php\pear Но путь для груши .;C:\xampp\php\pear.

Установите правильный путь для груши, и он будет работать. Я просто сделал это.