symfony - 并行运行行为测试(在两个浏览器窗口中)

标签 symfony selenium-webdriver behat mink

我关注了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/

相关文章:

php - 新手和 PHP 框架

php - 为什么在我访问 app.php 时我的 Symfony2 安装出现 404ing?

testing - 每次测试前用貂皮清洗干净

selenium - Mink:在@BeforeStep中等待页面加载

laravel - Behat 在 Laravel 5 中读取默认 .env 文件而不是 .env.behat

symfony - 在实体存储库中注入(inject)容器

php - Twig 不更新 symfony 中的更改

java - 提交表单时出现 HtmlUnit StackOverflowError

python - 在第一个测试完成且测试失败后,Python和Unittest打开第二个浏览器

java - Selenium : Expected [object Undefined] 的 Java 错误