Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring为不同的h2测试启动不同的data.sql文件_Java_Spring_H2 - Fatal编程技术网

Java Spring为不同的h2测试启动不同的data.sql文件

Java Spring为不同的h2测试启动不同的data.sql文件,java,spring,h2,Java,Spring,H2,我正在使用在属性文件中配置的h2数据库 @RunWith(SpringRunner.class) @SpringBootTest(classes=Application.class) public class TaskProviderTest { } 我使用schema.sql和data.sql文件进行单元测试。这两个脚本都在测试启动时执行 对于不同的Junit测试用例,是否仍然可以使用不同的data.sql文件?尝试使用EmbeddedDataSource并从代码中的方法对其进行配置。 下面

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

@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
public class TaskProviderTest {
}
我使用schema.sql和data.sql文件进行单元测试。这两个脚本都在测试启动时执行


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

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

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

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

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

您可以使用Spring的
EmbeddedDatabaseBuilder
在单元测试的
setUp()
方法中构造数据库,为不同的测试提供不同的
data.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();
}
参考:


您可以使用Spring的
EmbeddedDatabaseBuilder
在单元测试的
setUp()
方法中构造数据库,为不同的测试提供不同的
数据.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();
}
参考:


当前如何加载data.sql?我的意思是你能添加代码吗?它是由spring Boot自动添加的。你现在是如何加载data.sql的?我的意思是你能添加代码吗?它是由spring boot自动添加的