Play2 Scala specs2 -多个测试在一个单一的应用程序WithServer



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

所以我把测试类改成这样:

{
  "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())

再见

最新更新