[英]How to autoload Composer packages in CakePHP 2 Travis integration
我正在使用CakePHP 2.x插件,该插件使用Composer来提取包依赖性。 我现在正尝试使用Cake of Cake的Travis包,以便在插件的存储库更新时自动运行我的单元测试。
据我所知,这不包括在我的供应商文件中加载所需的Composer自动加载文件。 因此,我的测试失败,因为缺少第三方包中定义的类。
正如CakePHP 2的高级安装中所述,我正在尝试将以下内容添加到bootstrap.php
: -
require APP . 'Vendor' . DS . 'autoload.php';
我试图通过我的.travis.yml
文件的before_script
来附加bootstrap.php
: -
before_script:
- git clone https://github.com/FriendsOfCake/travis.git --depth 1 ../travis
- ../travis/before_script.sh
- echo "require APP . 'Vendor' . DS . 'autoload.php';" >> ../cakephp/app/Config/bootstrap.php
不幸的是,这作为文件APP . 'Vendor' . DS . 'autoload.php'
失败了APP . 'Vendor' . DS . 'autoload.php'
APP . 'Vendor' . DS . 'autoload.php'
APP . 'Vendor' . DS . 'autoload.php'
无法找到。 (我也尝试在APP . '..' . DS . 'Vendor' . DS . 'autoload.php'
查找文件APP . '..' . DS . 'Vendor' . DS . 'autoload.php'
)。
使用Travis安装CakePHP时,Composer autoload.php
文件位于何处? 当我的测试在Travis CI上远程运行时,如何确保加载第三方软件包?
第三方插件的默认目录名是vendor
(小写),CakePHP有Vendor
,您可以在.../app/composer.json
更改它
{
"config": {
"vendor-dir": "Vendor" // CakePHP third party plugins dir name
},
"require": {
...
}
}
解决方案是将require
语句中的Vendor
文件夹更改为before_script
的小写vendor
: -
before_script:
- git clone https://github.com/FriendsOfCake/travis.git --depth 1 ../travis
- ../travis/before_script.sh
- echo "require APP . 'vendor' . DS . 'autoload.php';" >> ../cakephp/app/Config/bootstrap.php
执行此CakePHP后,正确包含Composer自动加载文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.