2010-11-13 153 views
0

我已经安装了PHPUnit并检查了我的PEAR设置,一切都很顺利。我正在使用Yii作为我的框架,而我正在使用Linux共享服务器。当我运行一个测试(任何测试)时,我会得到下面的错误。从我可以告诉我想我需要将以下添加到我的路径设置:PHPUnit和Yii共享服务器上

/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

检查您的PHPUnit在/ usr/lib中/ PHP/PHPUnit的,ortherwise存在,你必须包括在php.ini的PHPUnit的人生路。

检查加载的配置文件(php.ini中)使用的是带有

php --ini

把PEAR目录 “包含路径” 行。

+0

因为我在共享服务器上,所以PHPUnit存在于/ home/myname/php/PHPUnit中。我无法写入/ usr/lib/php,并且PHPUnit在那里不存在。 PEAR安装正确,位于php.ini文件中。这是默认的。我无权访问更改服务器的php.ini文件。 – Joe 2010-11-13 17:57:35

1

很多考验和磨难我想通了之后。希望这可以帮助别人。

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

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

当运行从/家/ MYNAME/PHP中的PHPUnit的测试,我会得到一个错误,说明

File &quot;/home/... &quot; could not be found

在这一点上,我发现我需要升级PHPUnit的,这反过来又提升了许多它的依赖关系(CodeCoverage,Selenium和其他)。升级PHPUnit的命令是从/ home/MYNAME/PHP目录

pear upgrade phpunit/PHPUnit 

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