【问题标题】:trouble including PHPUnit包括 PHPUnit 在内的麻烦
【发布时间】:2013-08-25 20:54:22
【问题描述】:

我想开始为我的代码编写测试,所以我使用以下命令安装了最新的 PHPUnit

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

http://phpunit.de/manual/3.8/en/installation.html

然后我将 /usr/local/bin 添加到我的 php.ini 包含路径中,如下所示

include_path = ".:/Applications/MAMP/bin/php/php5.4.10/lib/php:/usr/local/bin"

但是当我访问/my-app/test.php时出现以下错误

警告(2):include(PHPUnit/Autoload.php):打开流失败:否 这样的文件或目录 [CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php,第 150 行]

警告(2):include() [function.include]:打开失败 'PHPUnit/Autoload.php' 用于包含 (include_path='/Users/DevinCrossman/Sites/studio-bliss/lib:.:/Applications/MAMP/bin/php/php5.4.10/lib/php:/usr/local/bin') [CORE/Cake/TestSuite/CakeTestSuiteDispatcher.php,第 150 行]

我尝试将/usr/local/bin/phpunit 更改为/usr/local/bin/PHPUnit,但没有成功。我还尝试将包含路径从 /usr/local/bin 更改为 /usr/local/bin/phpunit 并重新启动 apache(我在这台机器上使用 MAMP PRO,但它在我的 ubuntu 服务器上也不起作用)

phpinfo() 表明包含路径设置正确。

这可能是我错过的一些显而易见的事情。谁能告诉我为什么这不起作用?

【问题讨论】:

    标签: php unit-testing cakephp phpunit cakephp-2.3


    【解决方案1】:

    CakePHP recommends using PEAR to install PHPUnit。它应该在你的情况下工作得更好。

    将 phar 放入文件名为 'phpunit' 的 /usr/local/bin 是为了通过运行 PHPUnit's testrunner via the command line 来使用,因为它将使 phpunit 命令可用。例如运行命令:

    phpunit MyTest test.php
    

    在浏览器中运行时,您需要可加载的 PHPUnit 类,这仅通过在包含路径中包含您的 phar 的路径是无法工作的。 我不确定,但如果您将 phar 包含在测试文件中,它可能会起作用:

    require_once '/path/to/phpunit.phar'
    

    【讨论】:

      【解决方案2】:

      app 目录中编辑或创建 composer.json。添加以下行。

      {
          "require-dev" : {"phpunit/phpunit":"3.7.*"}
      }
      

      然后使用composer安装。

      composer install
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-03
        • 2010-12-25
        • 1970-01-01
        相关资源
        最近更新 更多