I'm working on a CakePHP 2.x plugin that uses Composer to pull in a package dependency. I am now trying to use the Friends of Cake's Travis package to automatically run my unit tests whenever the plugin's repository is updated.
As far as I can tell this does not include the Composer autoload file required for loading in my vendor files. As a result my tests fail as the class defined in the third-party package is missing.
As described in CakePHP 2's advanced installation I'm trying to add the following to bootstrap.php
:-
require APP . 'Vendor' . DS . 'autoload.php';
I've attempted to do this via the before_script
of my .travis.yml
file to append 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
Unfortunately this is failing as the file APP . 'Vendor' . DS . 'autoload.php'
cannot be found. (I have also tried looking for the file in APP . '..' . DS . 'Vendor' . DS . 'autoload.php'
).
Where is the Composer autoload.php
file located when installing CakePHP using Travis? How can I ensure my third-party package is loaded when my tests run remotely on Travis CI?
Default directory name for third party plugins is vendor
(lower case), CakePHP have Vendor
, you can change that in .../app/composer.json
{
"config": {
"vendor-dir": "Vendor" // CakePHP third party plugins dir name
},
"require": {
...
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With