4

我想开始为我的代码编写测试,所以我使用以下命令安装了最新的 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/binto更改为/usr/local/bin/phpunit并重新启动 apache(我在这台机器上使用 MAMP PRO,但它在我的 ubuntu 服务器上也不起作用)

aphpinfo()显示包含路径设置正确。

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

4

2 回答 2

2

CakePHP 推荐使用 PEAR 来安装 PHPUnit。它应该在你的情况下工作得更好。

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

phpunit MyTest test.php

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

require_once '/path/to/phpunit.phar'
于 2013-08-23T04:02:20.893 回答
1

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

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

然后使用composer安装。

composer install
于 2014-11-07T23:54:26.997 回答