Я получаю эту ошибку, пока я пытался запустить 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.
Благодаря,
Возможная причина, по которой это может произойти, заключается в том, что ваш 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.
Надеюсь это поможет.
Ваша установка phpunit нарушена. Самое простое исправление для этого –
pear install --force --alldeps phpunit/phpunit
и посмотреть, что сработало.
Вам понадобится самая последняя версия груши 1.9.4
. Если у вас нет этой версии, установите его с помощью go-pear.phar
. Если вы используете xammp для чего-то, не пытайтесь исправить установку груши, которую они отправляют. Обычно это намного проще переустановить.
Если вы хотите, вы можете просто установить недостающий пакет:
pear install phpunit/File_Iterator
(добавьте --force
если груша сообщает вам, что она уже установлена)
Проверка конфигурации груши помогла мне найти это быстро:
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"
Через 2 дня после чтения, наконец, я решил с гидами:
Очистите ПК, удерживая / поврежденную установку Phpunit LINK
и переустановить с помощью этого руководства LINK
Для меня исправление было простым (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/php5/apache2/php.ini, но все еще был закомментирован в /etc/php5/cli/php.ini (интерфейс командной строки).
Разоблачение этой строки работало на меня:
include_path = ".:/usr/share/php:/usr/include/php5"
Довольно я знаю, но это всегда мелочи при создании новой машины 😉
Все хорошие вещи, которые я прочитал об этом. Сначала проверьте, где находится 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 ****
Готово.
У меня была такая же проблема, используя 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 решил проблему.
Я использую 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
Кроме того, используя пакет open-server, можно заметить, что он слишком коротко передает include_path.
Чтобы исправить это в Windows 7, вы можете сделать
cd c:\Windows mklink php.ini c:\OpenServer\userdata\temp\config\php.ini
У меня была такая же проблема с окнами 7 и xampp (php 5.6.11), я попробовал переустановить грушу и phpunit, но это не сработало. Когда я проверил разрешение каталога C: \ xammp \ php \ pear, он был доступен только для чтения, после того как я изменил разрешение, которое оно начало работать.
Посмотрите на ошибку:
(include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php
Xampp пытается найти этот файл в include_path .;C:\php\pear
Но путь для груши – .;C:\xampp\php\pear
.
Установите правильный путь для груши, и он будет работать. Я просто сделал это.