我希望在某些浏览器中运行behat测试,因此当我输入类似bin/behat firefox
或bin/behat chrome
或bin/behat opera
的内容时,应在相应的浏览器下运行。可能吗?如果是这样,我应该如何修改下面的yml或其他任何东西?我需要这样的东西的原因是selenium有时不喜欢某些基于其版本的浏览器。
我通过this post阅读但是我没有安静地将它应用于我的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
示例功能
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!"
答案 0 :(得分: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
我不是100%肯定,但我记得Behat将默认配置文件与其他配置文件合并,所以希望您不必复制所有内容,如果这不起作用,那么请尝试定义完整的配置文件。< / p>
另外,看一下this comment,您可以定义每个配置文件中要包含的标签,如果您只想在某些浏览器中运行某些测试,这可能非常有用。
要运行它,请指定配置文件:
$ behat -p firefox
$ behat -p chrome