java - Spring Boot针对不同的h2测试使用不同的data.sql文件

标签 java spring h2

@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
public class TaskProviderTest {
}

我正在使用属性文件中配置的 h2 数据库

spring.datasource.url=jdbc:h2:mem:testdb;MODE=PostgreSQL
spring.datasource.platform=h2
spring.jpa.hibernate.ddl-auto=none
spring.datasource.continue-on-error=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create-drop

我正在使用 schema.sql 和 data.sql 文件进行单元测试。这两个脚本都在测试启动时执行。

是否可以针对不同的 Junit 测试用例使用不同的 data.sql 文件?

最佳答案

尝试使用EmbeddedDataSource并通过代码中的方法配置它。 下面的代码演示了如何使用2个sql脚本创建数据源

@Bean
public DataSource dataSource() {
    final EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();

    return builder
            .setType(EmbeddedDatabaseType.HSQL)
            .addScript("sql/create-db.sql")
            .addScript("sql/fill-db.sql")
            .build();
}

关于java - Spring Boot针对不同的h2测试使用不同的data.sql文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789342/

相关文章:

java - 有人可以看看我的代码并告诉我出了什么问题吗?

java - 如何在 Spring 中设置 Oracle 加密属性?

java - h2 jpa删除方法不工作java

java - GWT 发生器测序

java - java 如何在数组字符串中查找元素

Firefox Linux 中的 Java 小程序使 Java 应用程序启动器崩溃/退出

java - Spring Remoting 中的 RMI 客户端身份验证

java - 为什么 Spring Security 的 BindAuthenticator 需要用户读取权限?

java - 为什么 IntelliJ 找不到正确的 WebServlet 类?

java - java应用程序中如何存储数据?