我想开始为我的代码编写测试,所以我使用以下命令安装了最新的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()
表示正确设置了包含路径。
它可能是我错过的显而易见的东西。谁能告诉我为什么这不起作用?
答案 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