【问题标题】:PHPUnit and Yii on a shared server共享服务器上的 PHPUnit 和 Yii
【发布时间】:2011-05-09 11:06:41
【问题描述】:

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

【问题讨论】:

    标签: php yii phpunit


    【解决方案1】:

    检查您的 PHPUnit 是否存在于 /usr/lib/php/PHPUnit 中,否则,您必须在 PHP.ini 中包含您的 PHPUnit 路径。

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

    php --ini

    在 "include_path" 行中放置一个 PEAR 目录。

    【讨论】:

    • 因为我在共享服务器上,所以PHPUnit存在于/home/myname/php/PHPUnit中。我无权写入 /usr/lib/php 并且那里不存在 PHPUnit。 PEAR 安装正确并且在 php.ini 文件中。默认情况下它就在那里。我无权更改服务器的 php.ini 文件。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      经过多次考验和磨难,我想通了。希望这对其他人有帮助。

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

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

      从 /home/myname/php 运行 phpunit 测试时,我会收到一条错误提示

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

      此时我发现我需要升级 PHPUnit,这反过来又升级了它的一些依赖项(CodeCoverage、Selenium 和其他)。升级phpunit的命令是

      pear upgrade phpunit/PHPUnit
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-23
        • 1970-01-01
        • 2015-01-07
        • 2011-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多