Play2 Scala specs2 - 在单个应用程序 WithServer 中进行多项测试

Play2 Scala specs2 - multiple test in a single application WithServer

按照此 post 中的说明,我已经能够 运行 在单个 FakeApplication 实例中进行多项测试。这可以显着减少测试执行时间并避免一些与 play-reactivemongo 插件相关的问题。

所以我改变了我的测试class形式:

{
  "SomeController" should {
    "do this" in FakeApplication(additionalConfiguration = addConf) {
      ...
    }
    "do that" in FakeApplication(additionalConfiguration = addConf) {
      ...
    }
  }
}

对此:

def application = FakeApplication(additionalConfiguration = addConf)
step(play.api.Play.start(application))

"SomeController" should {
  "do this" in {
    ...
  }
  "do that" in {
  ...
  }
}

step(play.api.Play.stop())

现在的问题是我有一些测试使用 WithServer 构造函数来 运行 测试服务器。像这样:

{
  "SomeOtherController" should {
    "do this" in new WithServer(app = FakeApplication(additionalConfiguration = addConf)) {
      ...
    }
  }
}

是否可以 运行 一个测试服务器进行所有测试?

谢谢。

我找到了解决方案:

def application = FakeApplication(additionalConfiguration = addConf)
def server = TestServer(port = 3333, application)
step(server.start())

"SomeController" should {
  "do this" in {
    ...
  }
  "do that" in {
    ...
  }
}

step(server.stop())

再见