使用Symfony2进行Behat 3,api使用dev环境进行测试

时间:2015-03-12 17:53:20

标签: symfony selenium behat guzzle

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,所以它似乎没有按预期工作!

由于

1 个答案:

答案 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