grails - 在一个GebReportingSpec中驱动两个不同的浏览器?

标签 grails functional-testing geb

我在Grails 2.3.7应用程序中使用geb和spock进行功能测试。该应用程序允许用户之间的实时互动,我想自动进行测试。

有谁知道如何或者是否有可能在一个Spec中运行两个不同的浏览器?例如,请参见下面的伪代码,以了解我如何在理想的环境中工作。

@Stepwise
class ChatPageSpec extends GebReportingSpec {

    def "login with chrome"() {
    }

    def "login with firefox"() {
    }

    def "send chat request with chrome"() {
    }

    def "accept chat request with firefox"() {
    }

    def "send hello with chrome"() {
    }

    def "receive hello with firefox"() {
    }
}

按照Craig的描述(http://www.objectpartners.com/2013/11/14/parallel-grails-functional-tests-with-geb-and-gradle/)并行运行测试看起来很有希望,但是如果我理解正确的话,并行测试将使用不同的应用程序实例,这将无法正常工作。另外,@ Stepwise或类似方法必须使浏览器保持同步。

我还检查了多边形驱动程序插件(http://grails.org/plugin/poly-driver),但看起来它是为每个Spec设计一个浏览器的。

最佳答案

恐怕您需要为此手工制作一些东西。

实现此目标的方法是an example,它曾经发布到Geb邮件列表中。我自己从未使用过它,但是代码看起来很合理。感觉就像您要使用MultiBrowserGebSpec并覆盖createBrowserMap()一样。

您可以手动创建驱动程序实例,然后使用 setDriver() 在浏览器实例上进行设置。另一种方法是为不同的浏览器使用不同的配置文件,这些文件将使用 getConf() 加载并传递给Browser构造函数。还有一种方法是在一个GebConfig.groovy中为不同的浏览器提供不同的环境,并使用通过the constructor that accepts environment name创建的不同的ConfifgurationLoader

关于grails - 在一个GebReportingSpec中驱动两个不同的浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634340/

相关文章:

grails - 运行应用程序时出现Grails应用程序数据源配置错误

grails - Grails 3.2.8无法在 Controller 中获取springSecurityService.currentUser

java - 如何系统测试 Java 桌面应用程序?

session - 登录页面使用 SSL,未加密的页面看不到加密的 session cookie(Grails、Acegi)

grails - heroku cleardb 插件中的连接关闭错误

unit-testing - 最大化测试覆盖率并最小化重叠/重复

symfony - 如何在 phpunit 功能测试中模拟 symfony Controller 的自动连接服务?

java - 如何在geb中下载zip文件到当前目录?

css - GEB 在元素之前查找并检查样式

groovy - 如何获取 Geb 模块实例及其声明的类?