Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 在ScalaTest中使用ScalaFutures运行测试时,会不时抛出非法状态异常_Playframework_Playframework 2.0_Slick_Scalatest_Slick 3.0 - Fatal编程技术网

Playframework 在ScalaTest中使用ScalaFutures运行测试时,会不时抛出非法状态异常

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

使用scalatest运行测试时,我会不时收到一个非法状态异常:

future返回了以下类型的异常: java.lang.IllegalStateException,消息为:无法初始化 执行语境;异步执行器已关闭

我将ScalaTest 2.2.6与Play framework 2.4和Slick 3.1结合使用。测试如下:

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