Как требовать vendor/autoload.php с behat.yml


В моем проекте у меня есть файл autoload.php, который отвечает за требование контекстных классов. Это файл, автоматически сгенерированный композитором. Как я могу включить этот файл, используя behat.yml?

В PHPUnit phpunit.xml.dist Я могу сделать это просто с помощью атрибута bootstrap следующим образом:

<phpunit bootstrap="vendor/autoload.php">

Есть ли аналогичная настройка в Behat?

Примечание: Я не спрашиваю о запуске Behat из каталога vendor, потому что, когда я это делаю, это работает так, как ожидалось. Это потому, что файл vendor/bin/behat содержит

include __DIR__.'/../vendor/autoload.php';

Выражение. Но у меня также есть behat, установленный глобально, и когда я запускаю глобальную команду behat, она не загружает мои классы контекста автоматически. И это тот вариант использования, который меня интересует.

Author: Maciej Sz, 2015-03-04

2 answers

По умолчанию используется автозагрузчик композитора.

Однако, в зависимости от того, где вы установили, будет использоваться другой загрузчик. Загрузчик проекта используется, если вы установили Behat в своем проекте, в то время как глобальный загрузчик используется, если вы установили Behat глобально.

Невозможно изменить это поведение только с помощью конфигурации. Обратите внимание, что это ожидаемое поведение. Видеть https://github.com/Behat/Behat/issues/490#issuecomment-40928786

Кроме того, рекомендуется установить Behat в вашем проекте.

Вероятно, вы могли бы написать расширение Behat, чтобы включить автозагрузчик проекта, даже если используется глобальная версия behat, но я не думаю, что это того стоит. Это также может привести к странным проблемам с автоматической загрузкой с дублирующими или неправильными версиями классов и т.д.

Наконец, вы также можете настроить автозагрузчик вручную: http://docs.behat.org/en/latest/guides/6.profiles.html#custom-autoloading

 3
Author: Jakub Zalas, 2015-03-05 16:26:31

Вы могли бы использовать следующее новое расширение поведения:

Https://github.com/Postcon/BehatBootstrapExtension

 0
Author: Andy Rosslau, 2016-01-28 14:32:00