Geo*_*man 4 spring-boot spring-boot-test
如果我正在运行测试,@SpringBootTest有没有办法访问 H2 控制台?我有一个访问 H2 数据库的测试(成功),但是如果我想自己检查数据库,我该怎么做?
我开始与运行测试webEnvironment=DEFINED_PORT和HTTP://本地主机:8080 /响应HTTP,但没有什么的http://本地主机:8080 / H2控制台/仍以404响应。
我尝试通过向以下项添加值来显式打开控制台application.properties:
spring.h2.console.enabled=true
spring.h2.console.path=/h2
Run Code Online (Sandbox Code Playgroud)
那似乎没有效果。仍然是 404/h2-console和/h2。
H2 控制台似乎是通过自动配置进入的,所以我使用 开启了自动配置报告-Ddebug,我可以看到尽管在 application.properties 中启用了启用标志,但它被视为关闭:
H2ConsoleAutoConfiguration:
Did not match:
- @ConditionalOnProperty (spring.h2.console.enabled=true) did not find property 'enabled' (OnPropertyCondition)
Matched:
- @ConditionalOnClass found required class 'org.h2.server.web.WebServlet'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
- found WebApplicationContext (OnWebApplicationCondition)
Run Code Online (Sandbox Code Playgroud)
似乎某种机制application.properties在运行测试时覆盖了该值或忽略了该值。
Spring Boot Test 不启动控制台吗?有什么方法可以说服它这样做吗?
好的,我能够使用以下注释显示它(在 Kotlin 中):
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, properties = arrayOf("spring.h2.console.enabled=true"))
即使这样,控制台仍然在/h2-console,所以它显然也忽略了控制台路径。我大概可以通过添加另一个属性来控制它。
| 归档时间: |
|
| 查看次数: |
3332 次 |
| 最近记录: |