Playframework 在ScalaTest中使用ScalaFutures运行测试时,会不时抛出非法状态异常
使用scalatest运行测试时,我会不时收到一个非法状态异常: future返回了以下类型的异常: java.lang.IllegalStateException,消息为:无法初始化 执行语境;异步执行器已关闭 我将ScalaTest 2.2.6与Play framework 2.4和Slick 3.1结合使用。测试如下:Playframework 在ScalaTest中使用ScalaFutures运行测试时,会不时抛出非法状态异常,playframework,playframework-2.0,slick,scalatest,slick-3.0,Playframework,Playframework 2.0,Slick,Scalatest,Slick 3.0,使用scalatest运行测试时,我会不时收到一个非法状态异常: future返回了以下类型的异常: java.lang.IllegalStateException,消息为:无法初始化 执行语境;异步执行器已关闭 我将ScalaTest 2.2.6与Play framework 2.4和Slick 3.1结合使用。测试如下: class-foodaospec 扩展PlaySpec 使用TestConfiguration 使用OneAppPerSuite 有规模的未来 耐心地{ 覆盖lazy va
class-foodaospec
扩展PlaySpec
使用TestConfiguration
使用OneAppPerSuite
有规模的未来
耐心地{
覆盖lazy val app=new GuiceApplication Builder()
.loadConfig(testConfig)
.in(模式测试)
.bindings(绑定[FooDao]。到[FooDaoImpl])
.建造
“FooDao#findAll”必须{
在中“返回长度为3”的结果集{
val fooDao=app.injector.instanceOf[fooDao]
val结果:Future[Seq[FooModel]=fooDao.findAll()
当准备(结果){r=>
r必须具有长度(3)
}
}
}
}
上述示例中的fooDao
使用Slick查询数据库。也许还值得一提的是,FooDaoImpl
使用Play的内部执行上下文(Play.api.libs.concurrent.execution.Implicits.defaultContext
)
我真的有点困在这里了。正如我已经提到的,异常是在我的一个测试套件中随机抛出的,但只是偶尔抛出
以前有没有其他人遇到过同样的问题?非常感谢您的帮助。好的,看来我已经解决了。我不小心让我的测试在
parallelExecution
中运行,设置为true
。以下sbt设置修复了我的问题:
parallelExecution in Test := false
fork in Test := true
好吧,看来我已经明白了。我不小心让我的测试在
parallelExecution
中运行,设置为true
。以下sbt设置修复了我的问题:
parallelExecution in Test := false
fork in Test := true