You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成测试中无法访问H2控制台的问题求助

Spring Boot集成测试中H2控制台无法访问的解决办法

问题根源

@SpringBootTest默认采用WebEnvironment.MOCK模式,该模式仅创建模拟Web环境,不会启动真实的嵌入式Web服务器。所以即便H2控制台已启用,也无法通过HTTP请求访问。

解决步骤

在@SpringBootTest注解中指定Web环境类型,启动真实服务器:

修改测试类代码

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SpringBatchTest
class BankBatchApplicationTests {

    @Autowired
    private JobLauncherTestUtils jobLauncherTestUtils;

    @Test
    void contextLoads() throws Exception {
        JobExecution jobExecution = jobLauncherTestUtils.launchJob();
        assertEquals("COMPLETED", jobExecution.getExitStatus().getExitCode());
    }

}

可选配置说明

  • WebEnvironment.RANDOM_PORT:自动分配可用随机端口,避免端口冲突,适合自动化测试场景。
  • 若需要固定端口,可改用WebEnvironment.DEFINED_PORT,此时将使用配置文件中server.port指定的端口(默认8080)。

验证方法

重新运行测试,查看日志获取服务器启动端口,即可通过http://localhost:[端口号]/h2-console/访问控制台,注意确保控制台填写的JDBC URL与日志中显示的数据库地址一致。

内容的提问来源于stack exchange,提问作者AntonBoarf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:52:11