在我的电脑上,我有一个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
后,我安装了phpunit并安装了selenium软件包并在这里工作
/cakephpproject/vendor/bin/phpunit
/cakephpproject/vendor/phpunit/phpunit-selenium
现在从/cakephpproject/app/
我尝试运行以下命令
../vendor/bin/phpunit Test/Case/Controller/MyControllerTest
但是我收到以下错误消息
致命错误:未找到“应用”类...
如果我使用./Console/cake test app Controller/GranulesController
,测试会尝试运行但会抛出PHPUnit_Extensions_Selenium2TestCase not found
错误,因为系统上没有安装PHPUnit Selenium。
如何让cakephp使用phpunit&我使用composer安装的phpunit-selenium并没有使用全局安装的phpunit?
答案 0 :(得分:0)
以下命令似乎正在执行PHPUnit& PHPUnit-Selenium2我使用Composer安装。
./Console/cake test app AllControllers --bootstrap ../vendor/autoload.php
答案 1 :(得分:0)
我在CakePHP 2.x中遇到了类似的问题(在最新的CakePHP 2.8.5中已修复)。
CakePHP expects在以下某个地方找到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(默认情况下)creates a directory called vendor
for its files(注意缺少复数)。
此问题为recently fixed for CakePHP 2.x,但您可以通过将the COMPOSER_VENDOR_DIR
environment variable设置为vendors
来获得相同的行为。