Zend框架(PHPUnit)测试无法运行(phpunit:找不到命令/未找到PHPUnit_Framework_TestCase类)。

7

我按照书上的步骤安装了PHPUnit:

sudo pear channel-discover pear.phpunit.de
sudo pear install phpunit/PHPUnit

包含路径是在/etc/php5/cli/php.ini中添加的。
include_path = ".:/usr/share/php"

$ ls /usr/share/php/PHPUnit/
Extensions  Framework

但是现在,如果我想运行Zend Framework的测试。
user@server:/var/www/page/tests$ ./runtests.sh 
+ phpunit --verbose AllTests
./runtests.sh: line 72: phpunit: command not found
user@server:/var/www/page/tests$ php AllTests.php 
PHP Fatal error:  Class 'PHPUnit_Framework_TestCase' not found in /var/www/page/tests/Zend/Acl/AclTest.php on line 37

当我尝试按照PHPUnit手册http://www.phpunit.de/manual/3.6/en/writing-tests-for-phpunit.html的指示在Zend Framework上下文之外进行操作时,当然也会遇到phpunit: command not found的问题。
我感觉我可能漏掉了一些关键内容...
解决方案:
看起来PEAR通道存在问题,重新添加另外两个后,问题得以解决。
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com

你的 PATH 变量中是否包含 phpunit 所在文件夹的路径? - Marcin
@marcin 你可以更具体一些吗? - Hannes
@Hannes。PHPUnit是一个可以从终端执行的命令。尝试设置它,例如导出PATH=$PATH:/path/to/folder/with/phpunit。 - Marcin
@Marcin 我执行了 export PATH=$PATH:/usr/share/php/PHPUnit,但是没有任何变化。但是正如你在上面看到的,在目录 /usr/share/php/PHPUnit 中只有2个子目录,没有什么可以执行的东西。 - Hannes
@Hannes。如果该命令缺失,那么phpunit可能在其他文件夹中,或者你的phpunit安装不完整。 - Marcin
@Marcin - 我使用了find命令,只找到了/usr/share/php/PHPUnit作为一个合适的匹配项 - 但是在重新安装整个东西之后,现在似乎可以工作了 - 谢谢 - Hannes
1个回答

6

由于问题已在评论中解决,我只需提供一个真正的答案来总结。

问题的原因是缺少phpunit命令。重新安装phpunit并将变量PATH设置为包含phpunit命令的文件夹(export PATH=$PATH:/path/to/folder/with/phpunit)即可解决该问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接