selenium之不同浏览器下运行behat测试

你猜 阅读:28 2024-09-07 23:24:14 评论:0

我想在某些浏览器中运行 behat 测试,所以当我输入类似这样的内容时 bin/behat firefoxbin/behat chromebin/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!" 

请您参考如下方法:

文档一次又一次地糟糕,所以你需要尝试一下配置。我相信有几种方法可以实现这一点,但建议的配置文件方法应该是最简单的。如果我得到正确的一切,它可以像这样完成。

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 将默认配置文件与其他配置文件合并,因此希望您不必复制所有内容,如果这不起作用,请尝试定义完整的配置文件。

另外,看看 this comment ,您可以定义每个配置文件包含哪些标签,如果您只想在特定浏览器中运行特定测试,这可能非常有用。

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

$ behat -p firefox 
$ behat -p chrome 


标签:测试
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号