在不同的浏览器下运行behat测试

Ben*_*der 3 selenium behat mink

我想运行在某些浏览器贝哈特测试,所以当我输入这样的事情bin/behat firefoxbin/behat chromebin/behat opera测试应在各自的浏览器中运行.可能吗?如果是这样,我应该如何修改下面的yml或其他任何东西?我需要这样的东西的原因是,selenium有时不喜欢某些基于其版本的浏览器.

我通过这篇文章阅读但是我没有安静地将它应用于我的behat.yml

behat.yml:

default:
    context:
        class: Football\LeagueBundle\Features\Context\FeatureContext
        parameters:
            output_path: %behat.paths.base%/test/report/behat/output/
            screen_shot_path: %behat.paths.base%/test/report/behat/screenshot/
    extensions:
        Behat\Symfony2Extension\Extension:
            mink_driver: true
            kernel:
                env: test
                debug: true
        Behat\MinkExtension\Extension:
            base_url: 'http://symfony.local/app_test.php/'
            files_path: %behat.paths.base%/test/dummy/
            browser_name: firefox
            goutte: ~
            selenium2: ~
    paths:
        features: %behat.paths.base%/src
        bootstrap: %behat.paths.features%/Context
Run Code Online (Sandbox Code Playgroud)

示例功能

Feature: Visit Home Page
  In order to see hello message
  As a user
  I should be able to visit home page

  #SUCCESS
  @javascript
  Scenario: I visit home page
    When I go to "/"
    Then I should see "Hello Symfony!"

  #FAIL
  @javascript
  Scenario: I visit home page
    When I go to "/"
    Then I should not see "Hello Behat!"
Run Code Online (Sandbox Code Playgroud)

Ian*_*hek 6

文档一次又一次地糟透了,所以你需要玩配置.我确信有几种方法可以实现这一点,但建议的配置文件方式应该是最简单的.如果我能正确地得到一切,就可以这样做.

default:
    context:
        class: Football\LeagueBundle\Features\Context\FeatureContext
        parameters:
            output_path: %behat.paths.base%/test/report/behat/output/
            screen_shot_path: %behat.paths.base%/test/report/behat/screenshot/
    extensions:
        Behat\Symfony2Extension\Extension:
            mink_driver: true
            kernel:
                env: test
                debug: true
        Behat\MinkExtension\Extension:
            base_url: 'http://symfony.local/app_test.php/'
            files_path: %behat.paths.base%/test/dummy/
            browser_name: firefox
            goutte: ~
            selenium2: ~
    paths:
        features: %behat.paths.base%/src
        bootstrap: %behat.paths.features%/Context

chrome:
    extensions:
        Behat\MinkExtension\Extension:
            browser_name: chrome

firefox:
    extensions:
        Behat\MinkExtension\Extension:
            browser_name: firefox     
Run Code Online (Sandbox Code Playgroud)

我不是100%肯定,但我记得Behat将默认配置文件与其他配置文件合并,所以希望您不必复制所有内容,如果这不起作用,那么请尝试定义完整的配置文件.

另外,看一下这个评论,您可以定义每个配置文件要包含的标签,如果您只想在某些浏览器中运行某些测试,这可能非常有用.

要运行它,请指定配置文件:

$ behat -p firefox
$ behat -p chrome
Run Code Online (Sandbox Code Playgroud)