Как передать переменную среды в YML-файл Codeception из командной строки? - PullRequest
1 голос
/ 31 января 2020

Я постоянно вижу подобные вещи в YML-файлах Codeception:

modules:
    enabled:
        - PhpBrowser:
            url: '%URL%'

Как передать URL-адрес Codeception из командной строки? Или любым другим способом!

1 Ответ

1 голос
/ 31 января 2020

Это задокументировано в https://codeception.com/docs/06-ModulesAndHelpers#Dynamic -Configuration-With-Parameters

Модули могут быть динамически сконфигурированы из переменных среды. Хранение параметров должно быть указано в глобальной конфигурации codeception.yml внутри раздела params. Параметры могут быть загружены из переменных среды, из файлов yaml (формат Symfony), .env (формат Laravel), ini или php.

Используйте раздел params кодировки глобального файла конфигурации .yml, чтобы указать, как их загрузить. Вы можете указать несколько источников для параметров, которые будут загружены из.

Пример: загрузка параметров из среды:

params:
    - env # load params from environment vars

Пример: загрузка параметров из файла YAML (Symfony):

params:
    - app/config/parameters.yml

Пример: загрузка параметров из файла php (Yii)

params:
    - config/params.php

Пример: загрузка параметров из файлов .env (Laravel):

params:
    - .env
    - .env.testing

После загрузки переменные параметров могут использоваться в качестве значений конфигурации модуля. Используйте имя переменной, заключенное в% в качестве заполнителя, и оно будет заменено значением.

Допустим, мы хотим указать учетные данные для службы облачного тестирования. Мы загрузили переменные SAUCE_USER и SAUCE_KEY из среды, и теперь мы передаем их значения в конфигурацию WebDriver:

modules:
   enabled:
      - WebDriver:
         url: http://example.com
         host: '%SAUCE_USER%:%SAUCE_KEY%@ondemand.saucelabs.com'

Параметры также полезны для предоставления учетных данных для подключения к модулю Db (взятых из файлов Laravel .env. ):

modules:
    enabled:
        - Db:
            dsn: "mysql:host=%DB_HOST%;dbname=%DB_DATABASE%"
            user: "%DB_USERNAME%"
            password: "%DB_PASSWORD%"

Если вы хотите установить его в командной строке, вы можете установить его так:

URL=http://example.org codecept run

или

export URL=http://example.org
codecept run

Приведенные выше примеры работают с Bash, вам может потребоваться сделать что-то еще, если вы используете другую оболочку.

...