【问题标题】:Using parameter placeholders in codeception.yml在 codeception.yml 中使用参数占位符
【发布时间】:2015-01-15 21:28:44
【问题描述】:

我正在设置 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

最好的方法是什么?

谢谢。

【问题讨论】:

    标签: symfony yaml codeception


    【解决方案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% 等参数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 2016-10-01
      • 2013-10-16
      • 2015-09-05
      • 2017-05-28
      相关资源
      最近更新 更多