我想在测试(测试调试)时使用 h2 控制台访问内存数据库。测试运行良好,h2 数据库似乎完成了它的工作。
为了启用 h2 控制台,我遵循了这个How to set H2 Database console url in the Quarkus Application.
然后我运行正常开发的应用程序时,控制台就可用了。它在 http://localhost:8082/h2/
下可用但是在运行我的测试(使用 RestAssured)时,控制台不可用。我用仅停止线程的断点进行了尝试,我还尝试在其中一个测试中设置一个 while(true) 循环,这样测试就不会完成,然后我会尝试访问控制台,但都没有用。
在运行测试时访问 h2 控制台是否需要进行任何其他设置?
在application.yml中我还有以下内容
"%test":
quarkus:
datasource:
db-kind: h2
jdbc:
driver: org.h2.Driver
url: jdbc:h2:mem:test
我还尝试在 main/resources 和 test/resources 下添加 META-INF 文件夹和 web.xml。但我不确定你是否会这样做?
知道如何访问 h2 控制台进行测试吗?
也许在运行测试时没有加载 servlet?或者它可能会在不同的端口下运行?我不太确定是什么问题。
也许我需要在显式加载 servlet 的 TestProfiles 中添加代码?知道在哪里以及如何做到这一点吗?
h2 控制台在同一个 JVM 中工作,它使用相同的 servlet 线程,这意味着如果你在你的休息服务中放置一个断点,它将暂停所有。因此调试时 h2 控制台将不可用。
您可以尝试运行第二个 spring boot 应用程序并从那里使用 h2 控制台检查https://stackoverflow.com/a/50039942/175554并检查Spring boot:无法登录 h2 控制台