共享服务器上的PHPUnit和Yii

共享服务器上的PHPUnit和Yii,php,yii,phpunit,Php,Yii,Phpunit,我已经安装了PHPUnit并检查了PEAR设置,一切正常。我使用Yii作为我的框架,并且我在linux共享服务器上。当我运行一个测试(任何测试)时,我会得到下面的错误。据我所知,我认为我需要在路径设置中添加以下内容: /home/myname/php/ 因为那是PHP和PHPUnit文件夹所在的位置。我无法修改php.ini文件,因为我在共享服务器上。我想知道这是否真的是问题所在,是否有其他人在共享环境中发现并修复了此问题 /protected/tests/unit]# phpunit d

我已经安装了
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
/protected/tests/unit]#phpunit dbTest.php
X-Powered-By:PHP/5.2.9
内容类型:text/html

警告:require_once(PHPUnit/Util/Filter.php)[]:无法打开流:第40行的/home/myname/bin/PHPUnit中没有此类文件或目录

致命错误:require_once()[]:无法在第40行的/home/myname/bin/PHPUnit中打开所需的“PHPUnit/Util/Filter.php”(include_path=”。:/usr/lib/php:/usr/local/lib/php)
检查PHPUnit是否存在于/usr/lib/php/PHPUnit中,或者,您必须在php.ini中包含PHPUnit的路径

检查正在使用的已加载配置文件(PHP.ini)

php--ini


将PEAR目录放在“include_path”行中。

乔,尝试将/home/myname/php/添加到您的路径中,如:

export PATH=/home/myname/php/:$PATH

还有,看看

经过许多考验和磨难,我终于明白了。希望这对其他人有帮助

因为我在共享服务器上,所以无法调整include_路径。使用.htaccess文件也不起作用,因为phpunit是从命令行运行的,不会调用.htaccess文件。因此,如果您与我在phpunit中遇到的问题相同,那么在.htaccess中设置包含路径是徒劳的

我现在唯一能够让phpunit测试运行的路径是/home/myname/php。这是因为我的PHPUnit文件自动安装在/home/myname/php/PHPUnit中

当从/home/myname/php运行phpunit测试时,我会得到一个错误声明

找不到文件“/home/…”

在这一点上,我发现我需要升级PHPUnit,PHPUnit反过来升级了它的许多依赖项(CodeCoverage、Selenium和其他)。升级phpunit的命令无效

pear upgrade phpunit/PHPUnit

现在,我可以从/home/myname/php文件夹成功运行测试,并且它可以正常工作。如果我从任何其他文件夹运行测试,它会失败,因为它正在搜索include_路径目录,/home/myname/php不是这些路径之一。

因为我在共享服务器上,PHPUnit存在于/home/myname/php/PHPUnit中。我没有写入/usr/lib/php的权限,那里也不存在PHPUnit。PEAR已正确安装,并且位于php.ini文件中。它默认在那里。我没有权限更改服务器的php.ini文件。