有没有办法避免在代码更改后重新加载时重新连接到内存数据库的连接池?
[info] - application - Shutting down connection pool.
[info] - application - Creating Pool for datasource 'default'
[info] - play.api.db.DefaultDBApi - Database [default] connected at jdbc:h2:mem:play
Run Code Online (Sandbox Code Playgroud)
即使您修改了与数据库无关的内容,Play也会关闭连接池并立即重新创建它.必须有充分的理由,如果没有,还有一个解决方法.
任何帮助赞赏.
我正在使用Play Framework 2.3和IntelliJ IDEA 14.我在我的应用程序中使用了Mailer插件.test在将此行添加到build.sbt之后,我在SBT控制台中运行命令时编写了一些完美的功能测试:
javaOptions in Test += "-Dconfig.file=conf/application.test.conf"
Run Code Online (Sandbox Code Playgroud)
这一个到文件conf/application.test.conf:
smtp.mock=yes
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我直接从IntelliJ运行测试时,我收到此错误:
java.lang.RuntimeException: smtp.host needs to be set in application.conf in order to use this plugin (or set smtp.mock to true)
Run Code Online (Sandbox Code Playgroud)
我尝试使用VM参数启动这些测试-Dconfig.file=conf/application.test.conf,但没有成功.
以下是我尝试执行的测试的两个示例:
@Test
public void testWithServer() {
running(testServer(3333), () -> {
assertThat(WS.url("http://localhost:3333").get().get(1000).getStatus()).isEqualTo(OK);
});
}
@Test
public void testWithBrowser() {
running(testServer(3333), HTMLUNIT, browser -> {
browser.goTo("http://localhost:3333");
assertThat(browser.$("title").getText()).isEqualTo("Welcome");
});
}
Run Code Online (Sandbox Code Playgroud)
谁可以帮我这个事?
谢谢!