Использование заполнителей параметров в codeception.yml

Я настраиваю модуль Db Codeception и хотел бы использовать параметры из файла parameters.yml моего Symfony 2.

В основном что-то вроде этого:

paths:
    tests: tests
    log: tests/_log
    data: tests/_data
    helpers: tests/_helpers
settings:
    bootstrap: _bootstrap.php
    suite_class: \PHPUnit_Framework_TestSuite
    colors: true
    memory_limit: 1024M
    log: true
modules:
    config:
        Symfony2:
            app_path: 'app'
            var_path: 'app'
            environment: 'test'
        Db:
            dsn: "mysql:host='%test_database_host%';dbname='%test_database_name%'"
            user: "%test_database_user%"
            password: "%test_database_password%"
            dump: tests/_data/test_data.sql

Заполнители (например, %test_database_user%) не заменяются значениями в файле parameters.yml в каталоге app/config Symfony 2.

параметры.yml:

parameters:
    test_database_name: testdb
    test_database_host: 127.0.0.1
    test_database_user: root
    test_database_password: thisismypassword

Как лучше всего это сделать?

Спасибо.


person mattyh88    schedule 18.11.2014    source источник


Ответы (1)


Чтобы использовать параметры, вы должны добавить конфигурацию параметров в codeception.yml:

params:
    - env # to get params from environment vars
    - params.yml # to get params from yaml (Symfony style)
    - params.env # to get params from .env (Laravel style)

вы можете использовать значения параметров, используя заполнители «%»:

modules:
    enabled:
        - Db:
            dsn: %DB_DSN%
            user: %DB_USER%
            password: %DB_PASS%

Эта возможность существует с момента этого PR: https://github.com/Codeception/Codeception/pull/2855

В вашем примере вы можете добавить параметры в свой codeception.yml, например:

params:
    - app/config/parameters.yml
paths:
    tests: tests
    log: tests/_log
    data: tests/_data
    helpers: tests/_helpers
settings:
    bootstrap: _bootstrap.php
    suite_class: \PHPUnit_Framework_TestSuite
    colors: true
    memory_limit: 1024M
    log: true
modules:
    config:
        Symfony2:
            app_path: 'app'
            var_path: 'app'
            environment: 'test'
        Db:
            dsn: "mysql:host='%test_database_host%';dbname='%test_database_name%'"
            user: "%test_database_user%"
            password: "%test_database_password%"
            dump: tests/_data/test_data.sql

Имейте в виду, что вы не можете получить доступ к таким параметрам, как %kernel.project_dir%

person Arno    schedule 07.09.2017