[英]Make CakePHP use local PHPUnit & PHPUnit Selenium installed via Composer
在我的计算机上,我有一个CakePHP项目。 在cakephp项目中,我有一个composer.json
文件,如下所示:
{
"name": "a/b",
"description": "c",
"require-dev": {
"phpunit/phpunit": "3.7.*",
"phpunit/phpunit-selenium": ">=1.2"
},
"license": "Proprietary",
"authors": [
{
"name": "d",
"email": "e"
}
],
"minimum-stability": "f"
}
运行composer install
我已经composer install
phpunit和selenium软件包并在这里工作
/cakephpproject/vendor/bin/phpunit
/cakephpproject/vendor/phpunit/phpunit-selenium
现在,从/cakephpproject/app/
我尝试运行以下命令
../vendor/bin/phpunit Test/Case/Controller/MyControllerTest
但是我收到以下错误消息
致命错误:找不到类“ App” ...
如果我使用./Console/cake test app Controller/GranulesController
该测试会尝试运行,但会抛出PHPUnit_Extensions_Selenium2TestCase not found
错误,因为未在系统上安装PHPUnit Selenium。
我如何使cakephp使用通过composer安装的phpunit和phpunit-selenium而不使用全局安装的phpunit?
以下命令似乎正在执行我使用Composer安装的PHPUnit&PHPUnit-Selenium2。
./Console/cake test app AllControllers --bootstrap ../vendor/autoload.php
我在CakePHP 2.x中遇到了类似的问题(在最新的CakePHP 2.8.5中已修复)。
CakePHP希望在以下位置之一找到PHPUnit:
vendors/phpunit/phpunit
vendors/PHPUnit
vendors/phpunit.phar
app/Vendor/phpunit
app/Vendor/PHPUnit
app/Vendor/phpunit.phar
[Composer's global directory]/vendor/phpunit
[Composer's global directory]/vendor/PHPUnit
[Composer's global directory]/vendor/phpunit.phar
但是Composer(默认情况下) 会为其文件创建一个名为vendor
的目录 (请注意缺少复数形式)。
该问题最近在CakePHP 2.x中得到了解决,但是您可以通过将COMPOSER_VENDOR_DIR
环境变量设置为vendors
来获得相同的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.