Configuration 使用配置中断播放规格,因为;“没有启动的应用程序”;

Configuration 使用配置中断播放规格,因为;“没有启动的应用程序”;,configuration,playframework-2.0,specs2,Configuration,Playframework 2.0,Specs2,我在application.conf上将一些字符串外部化到HOCON。我访问的配置值如下: import play.api.Play.current import play.api.Play.configuration configuration.getString("foo.bar").get() 如文档所述,尽可能早地在钥匙丢失的情况下快速失效 现在,我的一些依赖于已配置对象的测试失败,stacktrace指出: 原因:java.lang.RuntimeException:没有启动的应用

我在
application.conf
上将一些字符串外部化到HOCON。我访问的配置值如下:

import play.api.Play.current
import play.api.Play.configuration

configuration.getString("foo.bar").get()
如文档所述,尽可能早地在钥匙丢失的情况下快速失效

现在,我的一些依赖于已配置对象的测试失败,stacktrace指出:

原因:java.lang.RuntimeException:没有启动的应用程序


我想这与配置有关?我怎样才能解决这个问题?(测试是)

您是否有正在运行的
FakeApplication
?如文件所述:在运行测试/测试方法之前

Wiki中的示例:

@Test
public void findById() {
   running(fakeApplication(), new Runnable() {
      public void run() {
        Computer macintosh = Computer.find.byId(21l);
        assertThat(macintosh.name).isEqualTo("Macintosh");
        assertThat(formatted(macintosh.introduced)).isEqualTo("1984-01-24");
       }
   });
}
如果这不能解决您的问题,那么从Stacktrace提供更多信息可能会有所帮助


编辑:请仔细标记您的问题,提及
playframework
playframework-2.0

是没有意义的,因此,我需要将每个测试包装在该块中,以便只使用一些配置值?必须有一种更简单/非黑客的方法,这是一个好问题:)也许创建一个单例类并在启动测试用例时初始化。。。公平地说,我现在不能想出别的办法,这就是我实际使用的解决方案,我只是觉得我做错了什么。如果你使用的是specs2,你可以在上下文中使用它