2011-11-10 196 views
24

我一直在努力讓PHPunit爲我的zend框架項目工作並遇到各種問題。我重新安裝了PEAR並卸載了PHPunit,並重新安裝了它們。無法獲取PHPunit工作

我現在的錯誤是

[email protected]:~$ 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

我使用Ubuntu 11.10,PHP 5.3.6-13ubuntu3.2

我會很感激,如果有人能夠給我一些指點。我在谷歌上看起來很多,但似乎沒有解決我的問題。

謝謝,

德棉。

這裏是我的殼轉儲這說明什麼,我最近做:

[email protected]:~$ phpunit 
The program 'phpunit' is currently not installed. You can install it by typing: 
sudo apt-get install phpunit 

[email protected]:~$ sudo pear channel-discover pear.phpunit.de 
[sudo] password for demian: 

Channel "pear.phpunit.de" is already initialized 

[email protected]:~$ sudo pear channel-discover pear.symfony-project.com 

Channel "pear.symfony-project.com" is already initialized 

[email protected]:~$ sudo pear channel-discover components.ez.no 

Channel "components.ez.no" is already initialized 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ pear install phpunit/PHP_CodeCoverage 

phpunit/PHP_CodeCoverage is already installed and is the same as the released version 1.1.1 

install failed 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ sudo pear uninstall phpunit 
uninstall ok: channel://pear.php.net/PHPUnit-1.3.2 

[email protected]:~$ ^C 

[email protected]:~$ pear install phpunit/PHPUnit 
phpunit/PHPUnit is already installed and is the same as the released version 3.6.3 
install failed 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ sudo pear install phpunit/PHPUnit 

phpunit/PHPUnit is already installed and is the same as the released version 3.6.3 
install failed 

[email protected]:~$ 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 

[email protected]:~$ 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 

[email protected]:~$ 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 
+0

對於不可寫的錯誤請參閱php.ini(988行)[Phar]; http://php.net/phar.readonly;phar.readonly =關閉 – davidcondrey

回答

63

它拿起右邊的PHPUnit但其他包丟失了。您應該能夠解決這個問題使用

sudo pear install --alldeps --force phpunit/phpunit 

,或者如果你想只更新,這似乎是這個問題的lib:如果你是省略「命令」:

sudo pear install --force phpunit/PHPUnit_MockObject 

Windows用戶在windows平臺上

+6

修復它使用:sudo pear install --force phpunit/PHPUnit_MockObject – dimbo

+2

什麼是一個愚蠢的錯誤。爲什麼不將mockobject安裝爲依賴項?無論如何,謝謝你! – Duke

+0

@Duke如果梨工作正常,它的確如此:) – edorian