У меня есть устаревший проект Symfony 2.0 (точнее, версия 2.0.11), к которому я хотел бы добавить тесты поведения. Поскольку это Symfony 2.0, он использует систему поставщиков deps
, а не композитор. В данный момент я не в состоянии обновить версию Symfony или переключиться на композитор.
Я попытался установить behat, используя следующие настройки deps:
[Mink]
target=/Behat/Mink
git=git://github.com/Behat/Mink.git
version=v1.3.3
[MinkBundle]
target=/Behat/MinkBundle
git=git://github.com/Behat/MinkBundle.git
[BehatBundle]
target=/Behat/BehatBundle
git=git://github.com/Behat/BehatBundle.git
[Gherkin]
target=/Behat/Gherkin
git=git://github.com/Behat/Gherkin.git
version=v2.1.1
[Behat]
target=/Behat/Behat
git=git://github.com/Behat/Behat.git
version=v2.3.5
[Goutte]
target=/Goutte
git=git://github.com/fabpot/Goutte.git
(Да, я знаю, что BehatBundle и т. д. устарели, но похоже, что мне понадобятся эти устаревшие версии, учитывая, что я использую deps и sf2.0.)
Когда я запускаю vendor/Behat/Behat/bin/behat
, я получаю описанную проблему здесь:
PHP Warning: require_once(behat/autoload.php): failed to open stream: No such file or directory in /home/sam/wo-code/PersonaBubble/vendor/Behat/Behat/bin/behat on line 23
PHP Fatal error: require_once(): Failed opening required 'behat/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/sam/wo-code/PersonaBubble/vendor/Behat/Behat/bin/behat on line 23
Я понял, что в behat 2.3.5 на самом деле нет файла autoload.php
. Я просмотрел теги Behat на Github и понял, что 2.1.3 — последняя версия. версия, которая имела autoload.php
(на самом деле autoload.php.dist
, хотя каждая более ранняя версия также имела autoload.php.dist
, а не autoload.php
, поэтому я предположил, что это она).
Поэтому я изменил свой номер версии поведения в deps
на v2.1.3
, удалил своих поставщиков и переустановил. Затем команда behat изменилась, поэтому я запустил:
php vendor/Behat/Behat/bin/behat.php
Теперь я увидел эту ошибку:
PHP Fatal error: Class 'Symfony\Component\Console\Application' not found in /home/sam/wo-code/PersonaBubble/vendor/Behat/Behat/src/Behat/Behat/Console/BehatApplication.php on line 26
Кто-нибудь знает, какие правильные версии behat и т. д. мне следует использовать, чтобы заставить его работать с Symfony 2.0 и deps? Или есть какой-то другой шаг, который я пропустил.
PS В итоге я запустил behat через PHAR (хотя у этого были другие проблемы, поэтому я отказался от него как не стоит). Тем не менее, я действительно хочу знать, как это сделать с помощью стандартной установки поставщиков, поэтому этот пост.