#php #phpunit
#php #phpunit
Вопрос:
Я пытался заставить PHPUnit работать для моего проекта zend Framework и сталкивался с различными проблемами. Я переустановил PEAR и удалил PHPUnit, и переустановил их оба.
Моя текущая ошибка
демиан@dimbo-TP: ~ $ phpunit PHP Предупреждение: требуется один раз(PHPUnit/Framework/MockObject/Autoload.php ): не удалось открыть поток: нет такого файла или каталога в /usr/share/php/PHPUnit/Autoload.php в строке 48 PHP Фатальная ошибка: require_once(): Не удалось открыть требуемый ‘PHPUnit/Framework /MockObject /Автозагрузка.php’ (include_path=’.:/usr/share/php/:/usr/local/share/php /library’) в /usr/share/php/PHPUnit/Autoload.php в строке 48
Я использую ubuntu 11.10, PHP 5.3.6-13ubuntu3.2
Я был бы очень признателен, если бы кто-нибудь мог дать мне несколько советов. Я много искал в Google, но, похоже, ничто не решает мою проблему.
Спасибо,
Демиан.
Вот мой дамп оболочки, который показывает, что я недавно сделал:
demian@dimbo-TP:~$ phpunit
The program 'phpunit' is currently not installed. You can install it by typing:
sudo apt-get install phpunit
demian@dimbo-TP:~$ sudo pear channel-discover pear.phpunit.de
[sudo] password for demian:
Channel "pear.phpunit.de" is already initialized
demian@dimbo-TP:~$ sudo pear channel-discover pear.symfony-project.com
Channel "pear.symfony-project.com" is already initialized
demian@dimbo-TP:~$ sudo pear channel-discover components.ez.no
Channel "components.ez.no" is already initialized
demian@dimbo-TP:~$ sudo pear update-channels
Updating channel "components.ez.no"
Channel "components.ez.no" is up to date
Updating channel "doc.php.net"
Channel "doc.php.net" is up to date
Updating channel "pear.php.net"
Channel "pear.php.net" is up to date
Updating channel "pear.phpunit.de"
Channel "pear.phpunit.de" is up to date
Updating channel "pear.symfony-project.com"
Channel "pear.symfony-project.com" is up to date
Updating channel "pecl.php.net"
Channel "pecl.php.net" is up to date
demian@dimbo-TP:~$ sudo pear upgrade-all
Will upgrade channel://pear.php.net/benchmark
downloading Benchmark-1.2.8.tgz ...
Starting to download Benchmark-1.2.8.tgz (8,352 bytes)
.....done: 8,352 bytes
upgrade-all ok: channel://pear.php.net/Benchmark-1.2.8
demian@dimbo-TP:~$ sudo pear install --force --alldeps phpunit/PHPUnit
downloading PHPUnit-3.6.3.tgz ...
Starting to download PHPUnit-3.6.3.tgz (116,362 bytes)
.........................done: 116,362 bytes
install ok: channel://pear.phpunit.de/PHPUnit-3.6.3
demian@dimbo-TP:~$ pear install phpunit/PHP_CodeCoverage
phpunit/PHP_CodeCoverage is already installed and is the same as the released version 1.1.1
install failed
demian@dimbo-TP:~$ phpunit
PHP Warning: require_once(PHPUnit/Framework/MockObject/Autoload.php): failed to open
stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 48
PHP Fatal error: require_once(): Failed opening required
'PHPUnit/Framework/MockObject/Autoload.php' (include_path='.:/usr/share/php/:/usr/local/share/php/library') in /usr/share/php/PHPUnit/Autoload.php on line 48
demian@dimbo-TP:~$ pear install phpunit
Warning: lstat(): Lstat failed for /tmp/pear/cache/312d32445ed39d8611ead5ee1d8cd72frest.cacheid in PEAR/REST.php on line 276
PHP Warning: lstat(): Lstat failed for /tmp/pear/cache/312d32445ed39d8611ead5ee1d8cd72frest.cacheid in /usr/share/php/PEAR/REST.php on line 276
No releases available for package "pear.php.net/phpunit"
install failed
demian@dimbo-TP:~$ sudo pear install phpunit
WARNING: "pear/PHPUnit" is deprecated in favor of "phpunit/PHPUnit"
Did not download dependencies: pear/PHP_Compat, use --alldeps or --onlyreqdeps to download automatically
pear/PHPUnit can optionally use package "pear/PHP_Compat"
downloading PHPUnit-1.3.2.tgz ...
Starting to download PHPUnit-1.3.2.tgz (20,913 bytes)
........done: 20,913 bytes
install ok: channel://pear.php.net/PHPUnit-1.3.2
demian@dimbo-TP:~$ phpunit
PHP Warning: require_once(PHPUnit/Framework/MockObject/Autoload.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 48
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/MockObject/Autoload.php' (include_path='.:/usr/share/php/:/usr/local/share/php/library') in /usr/share/php/PHPUnit/Autoload.php on line 48
demian@dimbo-TP:~$ sudo pear uninstall phpunit
uninstall ok: channel://pear.php.net/PHPUnit-1.3.2
demian@dimbo-TP:~$ ^C
demian@dimbo-TP:~$ pear install phpunit/PHPUnit
phpunit/PHPUnit is already installed and is the same as the released version 3.6.3
install failed
demian@dimbo-TP:~$ phpunit
PHP Warning: require_once(PHPUnit/Framework/MockObject/Autoload.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 48
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/MockObject/Autoload.php' (include_path='.:/usr/share/php/:/usr/local/share/php/library') in /usr/share/php/PHPUnit/Autoload.php on line 48
demian@dimbo-TP:~$ pear install --force phpunit/PHPUnit
WARNING: configuration download directory "/tmp/pear/download" is not writeable. Change download_dir config variable to a writeable dir to avoid this warning
Cannot install, php_dir for channel "pear.phpunit.de" is not writeable by the current user
demian@dimbo-TP:~$ sudo pear install phpunit/PHPUnit
phpunit/PHPUnit is already installed and is the same as the released version 3.6.3
install failed
demian@dimbo-TP:~$ pear install --force phpunit/PHPUnit
WARNING: configuration download directory "/tmp/pear/download" is not writeable. Change download_dir config variable to a writeable dir to avoid this warning
Cannot install, php_dir for channel "pear.phpunit.de" is not writeable by the current user
demian@dimbo-TP:~$ sudo pear install --force phpunit/PHPUnit
Did not download optional dependencies: phpunit/PHP_Invoker, use --alldeps to download automatically
downloading PHPUnit-3.6.3.tgz ...
Starting to download PHPUnit-3.6.3.tgz (116,362 bytes)
.........................done: 116,362 bytes
install ok: channel://pear.phpunit.de/PHPUnit-3.6.3
demian@dimbo-TP:~$ phpunit
PHP Warning: require_once(PHPUnit/Framework/MockObject/Autoload.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 48
PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/MockObject/Autoload.php' (include_path='.:/usr/share/php/:/usr/local/share/php/library') in /usr/share/php/PHPUnit/Autoload.php on line 48
Комментарии:
1. Об ошибке, недоступной для записи, смотрите в php.ini (строка 988) [Phar]; php.net/phar.readonly;phar.доступно только для чтения = Выкл.
Ответ №1:
Он подбирает правильный phpunit, но другие пакеты отсутствуют. Вы должны быть в состоянии исправить это с помощью
sudo pear install --alldeps --force phpunit/phpunit
или, если вы хотите обновить только библиотеку, которая, похоже, является проблемой:
sudo pear install --force phpunit/PHPUnit_MockObject
Пользователи Windows: Опустите «sudo», если вы находитесь на платформе Windows
Комментарии:
1. Исправлено с помощью:sudo pear install —force phpunit /PHPUnit_MockObject
2. какая глупая ошибка. почему он не устанавливает mockobject в качестве зависимости? в любом случае, спасибо за это!
3. Это было решением моей проблемы в NetBeans: версия PHPUnit слишком старая! Спасибо
4. Это должно быть в официальных документах PHPUnit. Каждый раз, когда я устанавливаю PHPUnit, я оказываюсь здесь!
5. Мне пришлось использовать
pear install --alldeps --force pear.phpunit.de/DbUnit