Play Framework:在多个驱动程序上运行测试

问题描述:

我使用PlayFramework 2.3和specs2编写功能测试。Play Framework:在多个驱动程序上运行测试

在本文档中,有下面的例子

"run in a browser" in new WithBrowser(webDriver = WebDriverFactory(HTMLUNIT), app = fakeApplicationWithBrowser) { 
… 
} 

如何运行对多个驱动器本次测试?

我目前使用的:

def drivers: Seq[String => WebDriver] = ... 

examplesBlock { 
    for (driver <- drivers) { 
    "run in a browser" in ((s: String) => new WithBrowser(d(s)) { 
… 
    } 
    } 
} 

有没有更好的(简单)的方式?

最后,我想出了一个清洁的解决方案,通过在trait

trait MultiBrowser { 
    self : Specification => 

    def drivers : Seq[String => WebDriver] 

    def browsers(u: (String => WebDriver) => Unit) = examplesBlock { 
    for (driver <- drivers) { 
     u(driver) 
    } 
    } 
} 
提取逻辑