繁体   English   中英

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

[英]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:

  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

但是Composer(默认情况下) 会为其文件创建一个名为vendor的目录 (请注意缺少复数形式)。

该问题最近在CakePHP 2.x中得到了解决,但是您可以通过将COMPOSER_VENDOR_DIR环境变量设置为vendors来获得相同的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM