mat*_*h88 6 yaml symfony 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
Run Code Online (Sandbox Code Playgroud)
占位符(例如%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
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
谢谢。
为了使用 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)
Run Code Online (Sandbox Code Playgroud)
您可以使用 '%' 占位符来使用参数值:
modules:
enabled:
- Db:
dsn: %DB_DSN%
user: %DB_USER%
password: %DB_PASS%
Run Code Online (Sandbox Code Playgroud)
这种可能性自此 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
Run Code Online (Sandbox Code Playgroud)
请注意,您无法访问%kernel.project_dir%等参数
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |