Behat Api测试似乎正在进入开发环境(创建了dev缓存文件夹,它使用了dev数据库)。
它创建没有问题的测试数据库并添加数据(FeatureContext中的BeforeScenario方法)。
我的设置如下:
有一个app_test.php前端控制器。
default:
formatters:
pretty: true
autoload:
'': %paths.base%/app/features/bootstrap
suites:
app_suite:
type: symfony_bundle
bundle: AppBundle
contexts:
- AppBundle\Features\Context\FeatureContext:
parameters:
base_url: http://mysite.dev
mink_session: default
mink_javascript_session: selenium2
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
sessions:
default:
symfony2: ~
这个:http://www.forouzani.com/installing-behat-mink-and-selenium2-in-symfony2.html可能以前使用过behat 2,但我现在正在使用behat 3,所以它似乎没有按预期工作!
由于
答案 0 :(得分:7)
如果按照以下步骤仍然无法做到,我会尽量给你一步一步的例子。
更新composer.json
"require": {
"php": ">=5.4",
"behat/behat": "3.0.14",
"behat/behat-bundle": "1.0.0",
"behat/symfony2-extension": "2.0.0",
"behat/mink": "1.6.0",
"behat/mink-extension": "2.0.1",
"behat/mink-browserkit-driver": "1.2.0",
"behat/mink-goutte-driver": "1.1.0",
"behat/mink-selenium2-driver": "1.2.0"
},
运行composer
php composer.phar update
创建behat.yml文件。
default:
extensions:
Behat\Symfony2Extension: ~
Behat\MinkExtension:
base_url: http://behat-three.local/app_test.php
browser_name: firefox
sessions:
goutte: # fast, CLI, browser, no javascript support
goutte: ~
selenium2: # fast, CLI, opens up a browser
selenium2: ~
symfony2: # bleeding fast, CLI, no browser
symfony2: ~
suites:
test_suite:
type: symfony_bundle
bundle: SiteMainBundle
mink_session: selenium2
contexts:
- Site\MainBundle\Features\Context\FeatureContext:
output_path: build/behat/output
screen_shot_path: build/behat/screenshot
启动behat创建相关文件和fodler以便使用。
php bin/behat --init --suite=test_suite
然后确保您拥有app_test.php
并更新AppKernel
行。
# your_project/web/app_test.php
$kernel = new AppKernel('test', true);
然后使用自己的设置创建config_test.yml
,例如。
# your_project/app/config/config_test.yml
imports:
- { resource: config_dev.yml }
framework:
test: ~
session:
storage_id: session.storage.mock_file
profiler:
collect: false
web_profiler:
toolbar: false
intercept_redirects: false
swiftmailer:
disable_delivery: true
doctrine:
dbal:
connections:
hello:
driver: pdo_sqlite
path: %kernel.cache_dir%/test_hello.db