我在我的symfony2应用程序中使用behat进行测试。现在我需要有两个数据库。第一个(现在正在工作),正常使用,就像用户在现场做某事一样。第二个数据库(存在并在其上工作),用于测试目的。
我现在得到的是两个工作数据库,并且behat。 Behat使用第二个数据库,但问题是当测试流程时,站点不使用它。
我的config.yml
:
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
我的config_test.yml
:
doctrine:
dbal:
dbname: "%database_name%_test"
我的'behat.yml':
default:
suites:
default:
paths:
features: '%paths.base%/features'
bootstrap: '%paths.base%/features/bootstrap'
contexts:
- FeatureContext: ~
- EwidencjaContext:
userManager: '@fos_user.user_manager'
em: '@doctrine.orm.entity_manager'
packageManager: '@em.package_manager'
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
base_url: http://my_nginx/app_test.php
goutte: ~
selenium2:
browser: "chrome"
wd_host: http://selenium_chrome:4444/wd/hub
capabilities: { "browserName": "chrome", "browser": "chrome"}
Bex\Behat\ScreenshotExtension:
image_drivers:
local:
screenshot_directory: tests/features/images/
clear_screenshot_directory: true
如何更改数据库以进行时间测试?
答案 0 :(得分:1)
这使用SQLite for Behat(测试)环境,但如果你愿意,可以使用MySQL。
<强> config_test.yml 强>
doctrine:
dbal:
connections:
default:
driver: pdo_sqlite
path: %kernel.cache_dir%/default.db
charset: UTF8
<强> app_test.php 强>
相关行应为:$kernel = new AppKernel('test', true);
<强> AppKernel.php 强>
相关行应为:if (in_array($this->getEnvironment(), ['dev', 'test'])) {
<强> behat.yml 强>
注意app_test.php
。
default:
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
base_url: http://your_app_domain.dev/app_test.php
...
...
...
虚拟主机设置:
<VirtualHost *:80>
ServerName your_app_domain.dev
DocumentRoot "/path/to/your/app/web"
<Directory "/path/to/your/app/web">
Options Indexes FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your_app_domain.dev.error.log
CustomLog ${APACHE_LOG_DIR}/your_app_domain.dev.access.log combined
</VirtualHost>
一些信息:
<强>结果:强>
如果您拨打http://your_app_domain.dev/app_dev.php
,它将在配置中使用默认数据库设置,但如果您拨打http://your_app_domain.dev/app_test.php
,则会使用config_test设置。