【发布时间】:2015-07-08 19:24:16
【问题描述】:
我一直在使用 Play 官方文档中的 Specs2 跟踪 Scala 测试示例。我注意到他们使用WithApplication 来启动一个伪造的应用程序来进行测试,代码如下:
"something" should {
"do X" in new WithApplication { /* ... */ }
"do Y" in new WithApplication { /* ... */ }
"do Z" in new WithApplication { /* ... */ }
}
这很好,但我遇到的问题是每次发生这种情况时我都会承担启动应用程序的成本。一旦您的测试套件增长到合理的大小,这不一定是“快”或至少不够快。我试过做这样的事情:
val app = FakeApplication()
"something" should {
"do X" in new WithApplication(app) { /* ... */ }
"do Y" in new WithApplication(app) { /* ... */ }
"do Z" in new WithApplication(app) { /* ... */ }
}
和
"something" should {
val app = FakeApplication()
Helpers.running(app) {
"do X" in { /* ... */ }
"do Y" in { /* ... */ }
"do Z" in { /* ... */ }
}
}
第一个似乎适用于第一个测试,然后在以后的测试中抱怨数据库连接问题。我猜这里有什么东西正在关闭或什么东西(不确定是什么)。
第二个根本不起作用,因为它抱怨没有正在运行的应用程序,我也不确定。
非常感谢任何帮助。谢谢!
【问题讨论】:
标签: scala playframework specs2