Я использую Behat и Mink для тестирования приложения с использованием рамки Laravel, и я хочу использовать Artisan для настройки базы данных перед запуском тестов.Получить base_url в Behat @BeforeSuite
Чтобы правильно настроить Artisan, мне нужно знать домен, который будет тестироваться, и, следовательно, какую среду Laravel использовать. Это указано в файле behat.yml при использовании различных профилей. Например:
default:
extensions:
Behat\MinkExtension\Extension:
base_url: http://www.example.com
...
daniel:
extensions:
Behat\MinkExtension\Extension:
base_url: http://example.dev
Возможно ли получить значение base_url из @BeforeSuite?
Основная проблема здесь заключается в том, что @BeforeSuite должен быть статическим и, следовательно, не имеет доступа к норке, поэтому я не могу просто $this->getMinkParameter('base_url')
.
Я могу получить доступ к параметрам с помощью $suiteEvent->getContextParameters()
, поэтому я мог бы дублировать URL-адрес, но есть ли более чистое решение.
Это работало отлично. Я не могу ответить на весь ответ Artisan/Laravel, но для всех, кого это интересует, это будет комбинация этого ответа и моего предыдущего ответа на этот вопрос: http://stackoverflow.com/questions/24643449/laravel-4 -2-artisancall-ignoring-env-option/26425714 # 26425714 – DanielM
Вот сущность, показывающая, как это работает, когда вы все вместе: https://gist.github.com/Gisleburt/62ce3507eb792c42dfae – DanielM