Я пытаюсь настроить Behat 3.0. Я хочу изменить путь туда, где идут мои функции.
В настоящее время мой behat.yml
конфиг выглядит так:
default:
autoload:
'': app/tests/acceptance
Бег behat --init
создам acceptance/FeatureContext.php
в app/tests
каталог.
Тем не менее, это создаст features
папка в корне моего проекта. Я бы вместо этого хотел этого features
папка для размещения в app/tests/acceptance
папка.
Как я могу это сделать?
Behat 3 имеет поддержку люксы а также профили.
Единственное, что вам нужно сделать, это добавить пользовательские пути к профиль по умолчанию:
default:
autoload:
'': %paths.base%/app/tests/acceptance
suites:
default:
paths: [ %paths.base%/app/tests/acceptance/features ]
Всегда используйте %paths.base%
переменная, чтобы иметь возможность запускать ваши тесты Behat из другого каталога.
В зависимости от механизма автозагрузки Behat PSR-0 может возникнуть проблема, когда у вас будет больше контекстов.
Хорошей практикой является использование механизма автозагрузки композитора PSR-4 для запуска функций Behat с пространством имен.
После того, как вы настроили Behat, как в примере выше, вам нужно удалить раздел автозагрузки в bahat.yml и добавить contexts
к default
профиль:
default:
suites:
default:
paths: [ %paths.base%/app/tests/acceptance/features ]
contexts: [ MyApp\Tests\Acceptance\FeatureContext ]
Добавить автозагрузку конфигурации в composer.json
:
{
[...]
"autoload-dev": {
"psr-4": {
"MyApp\\Tests\\Acceptance\\": "app/tests/acceptance"}
}
[...]
}
А затем просто сбросить автозагрузчик с composer dump-autoload
,
Других решений пока нет …