无法让PHPunit工作


Cannot get PHPunit working

我一直在尝试让PHPunit为我的zend框架项目工作,并遇到了各种问题。我重新安装了PEAR和卸载了PHPunit,并重新安装了它们。

当前错误是

demian@dimbo-TP: ~ phpunit)美元PHP警告:require_once(PHPUnit/Framework/MockObject/autolload . PHP): failed to open stream: No such file or directory in/usr/share/PHP/phunit/autolload . PHP第48行PHP致命错误:require_once():未能打开所需的'PHPUnit/Framework/MockObject/autolload . PHP ' (include_path='.:/usr/share/PHP/:/usr/local/share/PHP/library')在/usr/share/PHP/PHPUnit/autolload . PHP第48行

我正在使用ubuntu 11.10, PHP 5.3.6-13ubuntu3.2

如果有人能给我一些建议,我将非常感激。我在谷歌上找了很多,但似乎没有什么能解决我的问题。

谢谢,

德棉。

下面是我的shell dump,显示了我最近所做的事情:

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

它选择了正确的phpunit,但其他包丢失了。您应该能够使用

修复此问题。
sudo pear install --alldeps --force phpunit/phpunit

或者如果您只想更新似乎有问题的库:

sudo pear install --force phpunit/PHPUnit_MockObject

Windows用户:省略"sudo"如果你是在Windows平台