使CakePHP使用本地PHPUnit& PHPUnit Selenium通过Composer安装

时间:2014-06-18 21:26:22

标签: php cakephp selenium phpunit

在我的电脑上,我有一个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?

2 个答案:

答案 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:

  1. vendors/phpunit/phpunit
  2. vendors/PHPUnit
  3. vendors/phpunit.phar
  4. app/Vendor/phpunit
  5. app/Vendor/PHPUnit
  6. app/Vendor/phpunit.phar
  7. [Composer's global directory]/vendor/phpunit
  8. [Composer's global directory]/vendor/PHPUnit
  9. [Composer's global directory]/vendor/phpunit.phar
  10. 但是Composer(默认情况下)creates a directory called vendor for its files(注意缺少复数)。

    此问题为recently fixed for CakePHP 2.x,但您可以通过将the COMPOSER_VENDOR_DIR environment variable设置为vendors来获得相同的行为。

相关问题