在codeception.yml中使用参数占位符

时间:2014-11-18 16:02:18

标签: symfony yaml codeception

我正在设置Codeception的Db模块,并希望使用我的Symfony 2的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

占位符(例如%test_database_user%)不会被Symfony 2的app / config目录中的parameters.yml文件中的值替换。

parameters.yml:

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

最好的方法是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

为了使用params,你应该将params配置添加到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

在您的示例中,您可以将params添加到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%

等参数