如何将初始化脚本添加到 h2 junit spring 测试?

问题描述

我有一个 @SpringBoottest,它使用内存中的 h2 db 进行 junit 测试:

spring.datasource.cache.url=jdbc:h2:mem:;MODE=MysqL
spring.datasource.cache.username=test
spring.datasource.cache.password=test

问题:如何在 h2 db 启动时向其添加模式创建脚本,但仅用于一个或某些测试?

解决方法

基本上,您可以尝试在要生成架构/数据/等的测试中使用 @Sql 注释。

给它一个包含模式定义的脚本,你就可以开始了。

@Sql("/generate_schema.sql")
public class MyTest {
}