Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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
Scala 播放2.2测试失败,出现异常';播放缓存未处于活动状态(状态为“关闭”)&x27;_Scala_Playframework_Ehcache_Playframework 2.1_Playframework 2.2 - Fatal编程技术网

Scala 播放2.2测试失败,出现异常';播放缓存未处于活动状态(状态为“关闭”)&x27;

Scala 播放2.2测试失败,出现异常';播放缓存未处于活动状态(状态为“关闭”)&x27;,scala,playframework,ehcache,playframework-2.1,playframework-2.2,Scala,Playframework,Ehcache,Playframework 2.1,Playframework 2.2,当我运行测试时,这个错误会在第一次测试后立即抛出。我猜这是因为Play使用的是CacheManager.create(ehcacheXml),它只为每个应用程序创建一个实例 [error] IllegalStateException: The play Cache is not alive (STATUS_SHUTDOWN) (Cache.java:4267) 如何配置play以使用多实例ehcache 这是我的测试: abstract class WithCleanTestData

当我运行测试时,这个错误会在第一次测试后立即抛出。我猜这是因为Play使用的是CacheManager.create(ehcacheXml),它只为每个应用程序创建一个实例

[error]     IllegalStateException: The play Cache is not alive (STATUS_SHUTDOWN) (Cache.java:4267)
如何配置play以使用多实例ehcache

这是我的测试:

abstract class WithCleanTestData extends WithApplication(FakeApplication(
  additionalConfiguration = TestConf.getConf.toMap
  )) {
  override def around[T: AsResult](t: => T): Result = super.around {
    prepareDbWithData()
    t
  }
  def prepareDbWithData() = {
  }
}

object MyTest extends PlaySpecification {

  "test api" should {
    class MyCtrl() extends Controller with MyControler

    "post data 1" in new WithCleanTestData {
      val myControler = new MyCtrl()
      val ret: Future[SimpleResult] = myControler.method().apply(FakeRequest())
      .....
    }

    "post data 2" in new WithCleanTestData {
      val myControler = new MyCtrl()
      val ret: Future[SimpleResult] = myControler.method().apply(FakeRequest())
      .....
    }
  }
}

请看我在play邮件列表上的回复



请看我在play邮件列表上的回复



基于johanandren的帖子,我为Java做了这项工作

play.Play.application().plugin(EhCachePlugin.class).cache().flush();

这是在@After中的测试基类中添加的。

基于johanandren的文章,我为Java做了这项工作

play.Play.application().plugin(EhCachePlugin.class).cache().flush();

这被添加到@After中的测试基类中。

我也得到了相同的异常。我不熟悉scala和scala play框架。你能让我知道如何将这个新的FixedEhCachePlugin连接到我的TestSpec类上吗?CachePlugin的sbt依赖性是什么?你能不能添加你的示例测试类作为这个FixedEhCachePlugin是如何插入的?我也遇到了同样的异常。我不熟悉scala和scala play框架。你能让我知道如何将这个新的FixedEhCachePlugin连接到我的TestSpec类上吗?CachePlugin的sbt依赖性是什么?你能添加你的示例测试类作为这个FixedEhCachePlugin是如何插入的吗