我关注了this blog作为示例并阅读 ParallerRunner信息。当我调用 bin/behat
命令时,会打开一个浏览器窗口,并使用以下设置成功运行所有测试。
symfony/behat.yml
default:
context:
class: Site\CommonBundle\Features\Context\FeatureContext
extensions:
Behat\Symfony2Extension\Extension:
mink_driver: true
kernel:
env: test
debug: true
Behat\MinkExtension\Extension:
base_url: 'http://symfony.local/app_test.php/'
javascript_session: selenium2
browser_name: firefox
goutte: ~
selenium2: ~
paths:
features: %behat.paths.base%/src
bootstrap: %behat.paths.features%/Context
我修改了 behay.yml(如下所示)以在一个浏览器窗口中运行一些测试,并在另一个窗口中运行一些测试,但它并没有这样做。它的作用是,它打开两个浏览器窗口,但它们都运行相同的测试!我该如何克服这个问题?
symfony/behat.yml
default:
context:
class: Site\CommonBundle\Features\Context\FeatureContext
parameters:
output_path: %behat.paths.base%/build/behat/output/
screen_shot_path: %behat.paths.base%/build/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%/build/dummy/
javascript_session: selenium2
browser_name: firefox
goutte: ~
selenium2: ~
shvetsgroup\ParallelRunner\Extension:
process_count: 2
paths:
features: %behat.paths.base%/src
bootstrap: %behat.paths.features%/Context
F1:
filters:
tags: "@backend"
F2:
filters:
tags: "@frontend"
行为测试:
这应该在一个窗口中运行:
@frontend
Feature: User Login
@javascript
Scenario: I can login to the system
Given I am on "/login"
And I login as "user"
这应该在另一个窗口中运行:
@backend
Feature: Admin Login
@javascript
Scenario: I can login to the system
Given I am on "/login"
And I login as "admin"
最佳答案
我使用 GNU Parallel 和 xargs 设置并行测试执行。
还对所有已执行的功能实现综合报告。
详细信息请参阅我的文章:
http://parallelandvisualtestingwithbehat.blogspot.com/p/blog-page.html
关于symfony - 并行运行行为测试(在两个浏览器窗口中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383870/