Я пытаюсь установить & настроить Behat на существующий мой небольшой проект. Я понимаю концепцию помещения *.feature
файлы в features
папка, а также может жить с положением моего фактического *Context.php
файлы в features/bootstrap
папка. Когда я смотрю на часть документации, в которой упоминается фактическая реализация функции, это подразумевает, что Behat по умолчанию ожидает, что вы поместите специфичные для вашего приложения классы в эту же папку:
Мы помещаем класс Shelf в features / bootstrap / Shelf.php, потому что
features / bootstrap — это автозагрузочная папка для Behat. Бехат имеет
встроенный автозагрузчик PSR-0, который просматривает функции / bootstrap. Если
вы разрабатываете собственное приложение, вы, вероятно, хотели бы поставить
занятия в месте, подходящем для вашего приложения.
Однако в документации нигде не упоминается, как я настроил бы Behat для распознавания классов из фактического app
папка.
Это структура каталогов моих проектов:
/
-/app
--/classes --where my apps classes actually live
-/features --behat generated folder
--/bootstrap --behat generated folder
-/public
-/system
-/vendor -- composer included libraries
Мой проект использует свой собственный автозагрузчик для классов, которые ищут в папке app / classes, а имена классов используют подчеркивание, где в пути будет разделитель каталога. например class Controller_App
будет найден в app/classes/controller/app.php
Как я могу настроить Behat так, чтобы он не ожидал найти классы моих приложений в папке features / bootstrap?
Решение было добавить следующее к composer.json
:
"autoload": {
"psr-0": {"":"app/classes"}
}
а потом беги composer dump-autoload
тогда это работает!
Других решений пока нет …