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

Grails 在一个GebReportingSpec中驱动两个不同的浏览器?,grails,functional-testing,geb,Grails,Functional Testing,Geb,我在Grails2.3.7应用程序中使用geb和spock进行功能测试。该应用程序允许用户之间的实时交互,我想自动测试 有人知道如何,或者如果可能的话,在一个规范中运行两个不同的浏览器吗?例如,请参阅下面的伪代码,了解我如何想象它在一个完美的世界中工作 @Stepwise class ChatPageSpec extends GebReportingSpec { def "login with chrome"() { } def "login with firefox

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

有人知道如何,或者如果可能的话,在一个规范中运行两个不同的浏览器吗?例如,请参阅下面的伪代码,了解我如何想象它在一个完美的世界中工作

@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()的描述并行运行测试看起来很有希望,但如果我理解正确,并行测试将使用不同的应用程序实例,这是行不通的。另外,@Stepwise或类似的东西必须保持浏览器的同步

我还查看了poly驱动程序插件(),但它看起来是为每个规范设计的一个浏览器


恐怕你需要为这个手工制作一些东西

实现这一目标的途径很多,这一点曾被发布到Geb邮件列表中。我自己从未使用过,但代码看起来很合理。感觉您将要使用
MultiBrowserGebSpec
并覆盖
createBrowserMap()


您可以手动创建驱动程序实例,然后使用在浏览器实例上进行设置。另一种方法是为不同的浏览器提供不同的配置文件,您可以使用这些文件加载并传递给
Browser
constructor。另一种方法是在一个
GebConfig.groovy
中为不同的浏览器提供不同的环境,并使用不同的
configurationLoader
创建。

谢谢,@erdi。我把这个标记为答案,因为如果你不知道,我怀疑其他人会知道。一旦我让它工作起来,我将在我的github帐户下推出一个新的repo。我没有意识到该框架将独立运行两个浏览器实例,因此不需要使用两个不同的浏览器。然而,最终解决方案花费的时间比我预期的要长。请参阅。有关于此主题的更新吗?如果能有类似于量角器配置的多功能启动多个浏览器实例并在它们上并行运行相同的测试,那就太好了