仅在执行Spring boot Junit类之前运行一次sql脚本

问题描述 投票:0回答:1

我正在尝试执行一个可能包含任何CRUD操作的Sql文件,然后再执行Spring Boot Junit类/回归测试套件。我使用典型/旧式JDBC方式完成了此操作,但想使用最新的API。 JDBC模板在这里无济于事,因为我正在尝试运行脚本。请在这里帮助我。

java sql-server database jdbc junit4
1个回答
0
投票

我相信您要达到的目的是在运行测试之前预先植入数据库。为此,我通常使用两种策略之一。

  1. 您可以将名为data.sql的文件放入src/main/resourcessrc/test/resources文件夹中。 Spring Boot将自动选择它并将数据导入到您的数据库中。如果只想导入模式,则可以使用schema.sql作为替代。

  2. 如果要为测试加载特定的数据和架构,则始终可以使用@Sql批注。它允许您指定要在运行测试之前运行的SQL文件的列表。

@Sql({"/employee_schema.sql", "/employee_test_data.sql"})
public class EmployeeTest {
    @Autowired
    private EmployeeRepository employeeRepository;

    @Test
    public void testLoadDataForTestClass() {
        assertEquals(3, employeeRepository.findAll().size());
    }
}

我通常指的是这个出色的教程https://www.baeldung.com/spring-boot-data-sql-and-schema-sql

© www.soinside.com 2019 - 2024. All rights reserved.