麻烦包括PHPUnit

时间:2013-08-22 22:55:25

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

我想开始为我的代码编写测试,所以我使用以下命令安装了最新的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'包括在内   (包含路径=' /用户/ DevinCrossman /站点/工作室幸福/ lib中。:/应用程序/ 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()表示正确设置了包含路径。

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

2 个答案:

答案 0 :(得分:2)

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

将带有文件名'phpunit'的phar放在/ usr / local / bin中意味着运行PHPUnit's testrunner via the command line,因为它将使phpunit命令可用。例如运行命令:

phpunit MyTest test.php

在浏览器中运行时,您需要加载可用的PHPUnit类,只需在include路径中输入您的phar的路径即可。 我不确定,但是如果你将phar包含在你的测试文件中它可能会有效:

require_once '/path/to/phpunit.phar'

答案 1 :(得分:1)

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

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

然后使用composer安装。

composer install