3

使用 Yii 安装 phpunit 时遇到很多问题。我跑:

$ phpunit unit/dbTest.php

但事实证明这个错误:

PHP 警告:require_once(PHPUnit/Autoload.php):无法打开流:第 12 行的 /opt/yii-1.1.10.r3566/framework/test/CTestCase.php 中没有此类文件或目录

(include_path='.:/usr/bin:/usr/share/php:/usr/bin/pear:/usr/share/php/Zend/:/opt/php5.3.10/lib/php/PHPUnit'

关于我的安装的一些细节:

$ phpunit --version
PHPUnit 3.4.5 by Sebastian Bergmann.

php --version
PHP 5.3.10 (cli) (built: Apr  6 2012 20:06:37) ( rebuilt didn't help :( )

pear list phpunit/phpunit
....
php    /opt/php5.3.10/lib/php/PHPUnit/Autoload.php

根据该信息,自动加载已安装,并且位于包含路径上。

我不确定我还需要做什么 - 任何人都可以阐明一下吗?

4

2 回答 2

3

我希望这对某人有用:

似乎在 ubuntu PEAR 上完成了这项任务,apt-get也无济于事。

这就是我解决它的方法

从手动下载http://pear.phpunit.de/

phpunit/PHPUnit

phpunit/File_Iterator
PHPUnit_MockObject
phpunit/PHPUnit_Selenium
PHP_CodeCoverage

手动解压缩并正确放入 php lib 或您希望它们去的任何地方。把这个库的头放在你的包含路径上(PHP、PHPlib、PEAR 在我的设置中都在这个根级别。)

该死的,希望能帮助我昨晚花了大约 6 个小时才让它工作的人......

于 2012-04-07T11:36:30.643 回答
2

正如 rix 在他的回答中显示的那样,您必须手动下载一些文件。

我按照以下命令在 Ubuntu 10.04 上运行:

wget http://pear.phpunit.de/get/PHPUnit-3.6.10.tgz
wget http://pear.phpunit.de/get/File_Iterator-1.3.1.tgz
wget http://pear.phpunit.de/get/PHPUnit_MockObject-1.1.1.tgz
wget http://pear.phpunit.de/get/PHPUnit_Selenium-1.2.6.tgz
wget http://pear.phpunit.de/get/PHP_CodeCoverage-1.1.2.tgz
wget http://pear.phpunit.de/get/PHP_TokenStream-1.1.3.tgz
wget http://pear.phpunit.de/get/Text_Template-1.1.1.tgz
wget http://pear.phpunit.de/get/PHP_Timer-1.0.2.tgz

sudo vi /etc/php5/cli/php.ini

=> 添加 /usr/share/php/PHPUnit/ 到 include_path 指令

tar xzf PHPUnit-3.6.10.tgz 
cd PHPUnit-3.6.10/
sudo cp -r PHPUnit/ /usr/share/php/
sudo ln -s /usr/share/php/PHPUnit /usr/bin/PHPUnit

tar xzf File_Iterator-1.3.1.tgz
sudo cp -r File/ /usr/share/php/PHPUnit/

tar xzf PHP_CodeCoverage-1.1.2.tgz
cd PHP_CodeCoverage-1.1.2/
sudo cp -R PHP/ /usr/share/php/PHPUnit/

tar xzf PHP_TokenStream-1.1.3.tgz
cd PHP_TokenStream-1.1.3/PHP/
sudo cp -r Token* /usr/share/php/PHPUnit/PHP/

tar xzf Text_Template-1.1.1.tgz
cd Text_Template-1.1.1/
sudo cp -r Text/ /usr/share/php/PHPUnit/

tar xzf PHP_Timer-1.0.2.tgz 
cd PHP_Timer-1.0.2/
sudo cp -r PHP/Timer* /usr/share/php/PHPUnit/PHP/

tar xzf PHPUnit_MockObject-1.1.1.tgz
cd PHPUnit_MockObject-1.1.1/
sudo cp -r PHPUnit/Framework/MockObject/ /usr/share/php/PHPUnit/Framework/

tar xzf PHPUnit_Selenium-1.2.6.tgz
cd PHPUnit_Selenium-1.2.6/
sudo cp -r PHPUnit/Extensions/* /usr/share/php/PHPUnit/Extensions/
于 2012-04-12T18:35:54.453 回答