我已经安装了PHPUnit
并检查了我的PEAR
设置,一切都很顺利。我使用Yii
作为我的框架,我在linux共享服务器上。当我运行测试(任何测试)时,我得到以下错误。据我所知,我认为我需要在路径设置中添加以下内容:
/home/myname/php/
因为那是PHP和PHPUnit
文件夹所在的位置。我无法修改php.ini文件,因为我在共享服务器上。我想知道这是否真的是问题,是否有其他人在共享环境中找到并解决了这个问题?
/protected/tests/unit]# phpunit dbTest.php
X-Powered-By: PHP/5.2.9
Content-type: text/html
<br />
<b>Warning</b>: require_once(PHPUnit/Util/Filter.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /home/myname/bin/phpunit on line 40<br />
<br />
<b>Fatal error</b>: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'PHPUnit/Util/Filter.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/myname/bin/phpunit on line 40
答案 0 :(得分:1)
由于我在共享服务器上,因此无法调整include_path。它不能使用.htaccess文件,因为phpunit是从命令行运行的,并且不会调用.htaccess文件。因此,如果你遇到与phpunit相同的问题,在.htaccess中设置包含路径是徒劳的。
我现在能够获得运行phpunit测试的唯一途径是/ home / myname / php。那是因为我的PHPUnit文件自动安装在/ home / myname / php / PHPUnit。
从/ home / myname / php运行phpunit测试时,我会收到错误说明
File "/home/... " could not be found
此时我发现我需要升级PHPUnit,而PHPUnit又升级了许多依赖项(CodeCoverage,Selenium等)。升级phpunit的命令是
pear upgrade phpunit/PHPUnit
现在我可以从/ home / myname / php文件夹成功运行测试,它可以工作。如果我从任何其他文件夹运行测试它失败,因为它正在搜索include_path目录而/ home / myname / php不是这些路径之一。
答案 1 :(得分:0)
检查您的PHPUnit是否存在于/ usr / lib / php / PHPUnit中,或者,您必须在PHP.ini中包含PHPUnit的路径。
检查您正在使用的加载配置文件(PHP.ini)
php --ini
将PEAR目录放在“include_path”行中。
答案 2 :(得分:0)
Joe,尝试将/ home / myname / php /添加到您的路径中:
export PATH=/home/myname/php/:$PATH