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

Play Framework : Run test on multiple drivers

我使用 PlayFramework 2.3 和 specs2 编写功能测试。

文档中有如下例子

"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)
    }
  }
}