PHPUnit和Yii在共享服务器上

时间:2010-11-13 07:51:09

标签: php yii phpunit

我已经安装了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

3 个答案:

答案 0 :(得分:1)

经过多次考验和磨难,我发现了它。希望这有助于其他人。

由于我在共享服务器上,因此无法调整include_path。它不能使用.htaccess文件,因为phpunit是从命令行运行的,并且不会调用.htaccess文件。因此,如果你遇到与phpunit相同的问题,在.htaccess中设置包含路径是徒劳的。

我现在能够获得运行phpunit测试的唯一途径是/ home / myname / php。那是因为我的PHPUnit文件自动安装在/ home / myname / php / PHPUnit。

从/ home / myname / php运行phpunit测试时,我会收到错误说明

File &quot;/home/... &quot; 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

另外,请查看http://php.net/set_include_path