Behat "base_url" из командной строки

Я хотел бы знать, можно ли установить base_url через командную строку. Пример

bin/behat --base_url=http://google.fr

Я бы хотел избежать создания нового профиля и передачи его через командную строку каждый раз, когда мне нужно проверить новый URL-адрес, для удобства.

Есть ли здесь какой-нибудь трюк?

Спасибо.

Ответ 1

Я нашел решение самостоятельно.

Просто передайте base_url в переменной среды BEHAT_PARAM.

export BEHAT_PARAMS="context[parameters][base_url]=http://google.fr"

Затем запустите behat

bin/behat

Ответ 2

В качестве альтернативы, если вы используете Mink, вы можете определить профиль в файле behat.yml

# behat.yml
default:
    extensions:
        Behat\MinkExtension\Extension:
            base_url: http://local.mysite.com
            goutte: ~
            selenium2: ~

dev:
    extensions:
        Behat\MinkExtension\Extension:
            base_url: http://dev.mysite.com

И затем вы можете запускать тесты с local.mysite.com по умолчанию с помощью

$ behat

Или против dev.mysite.com с

$ behat --profile=dev

Ответ 3

В Behat 3 этот параметр, похоже, стал JSON, поэтому он работает как:

export BEHAT_PARAMS='{"extensions":{"Behat\\MinkExtension":{"base_url":"https://google.com/"}}}'

Важные эти параметры не переопределяют, они по умолчанию и переписываются командой behat.yml. Таким образом, вы должны UNSET base_url в behat.yml, чтобы этот параметр CLI работал.

extensions:
  Behat\MinkExtension:
    # YOU MUST EDIT THIS YOURSELF!
    # Either set this here, or set the base_url via BEHAT_PARAMS
    # base_url: 'https://my.livesite.com/'

(Refs: функция-запрос, подсказка)

Ответ 4

Более короткий способ добиться того же, что и для вашего ответа, должен был просто передать переменные среды перед самой командой:

BEHAT_PARAMS="context[parameters][base_url]=http://google.fr" bin/behat