【问题标题】:CakePHP: loads plugin for testCakePHP:加载插件进行测试
【发布时间】:2016-08-31 15:57:13
【问题描述】:

我有一个插件 (FirstPlugin)。 该插件从其引导程序加载第二个插件 (SecondPlugin),它们都可以正常工作。

现在我正在为FirstPlugin 编写测试,我需要将SecondPlugin 加载到测试中。

所以在测试引导程序 (FirstPlugin/tests/bootstrap.php) 中,我只需要主引导程序 (FirstPlugin/config/bootstrap.php):

require ROOT . 'config' . DS . 'bootstrap.php';

我这样做是因为我还需要其他引导代码(常量、缓存设置等)。

这不起作用,我不明白这是什么问题。

注意我已经为FirstPlugin修改了composer.json

"autoload": {
    "psr-4": {
        "FirstPlugin\\": "src"
    }
},
"autoload-dev": {
    "psr-4": {
        "FirstPlugin\\Test\\": "tests",
        "SecondPlugin\\": "vendor/second-plugin-path/src"
    }
},

SecondPlugin 是通过composer 安装的,位于vendor/ 中。


编辑
这里抛出异常:
http://api.cakephp.org/3.2/source-class-Cake.Core.Plugin.html#149

这意味着$config['path'] 是空的。

我认为的问题是: http://api.cakephp.org/3.2/source-class-Cake.Core.Plugin.html#134

也许在测试的引导中我必须手动设置配置值?

【问题讨论】:

  • "不起作用" 不是正确的问题描述!即使问题对于了解 CakePHP 内部结构的人来说可能很明显,但请始终尽可能具体地说明究竟会发生什么,以及您希望发生什么。 ps,FirstPluginSecondPlugin怎么能共享同一个文件夹,即src
  • @ndm,对不起,我的意思是说我得到了一个 MissingPluginException 异常运行测试。他们不共享同一个文件夹,SecondPlugin 是通过 composer 安装的,它位于 vendor/
  • 没错,我已经设置了插件的确切路径(vendor /),但我仍然有同样的问题
  • @ndm 查看我的编辑。

标签: cakephp cakephp-3.0


【解决方案1】:

解决了。

缺少文件vendor/cakephp-plugins.php.
我注意到这个文件不是为插件创建的,而只是为应用程序创建的。奇怪。

【讨论】:

    猜你喜欢
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2018-01-28
    • 2017-03-02
    • 2018-09-03
    相关资源
    最近更新 更多