@SpringBootTest不会使用Junit5创建包含测试数据的嵌入式H2,创建架构或种子数据库

时间:2019-11-21 16:07:51

标签: spring-boot spring-data-jpa junit5 spring-boot-test

我正在尝试为我的Spring Boot应用程序创建冒烟测试。我想设置类似于以下内容的Junit 5测试类,以便可以对服务器执行请求,并使其从H2返回结果。

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CountriesIntegrationTest {

    @LocalServerPort
    private int port;

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    @Sql("classpath:country/country-inserts.sql")
    public void shouldRetrunCountry() {
        ...
    }
}

但是,没有为我的H2嵌入式数据库创建sql模式,因此sql脚本未运行。而且我不确定为什么会这样。

但是,如果我将SpringBootTest注释替换为@DataJpaTest,则将创建架构并运行插入sql脚本。

因此,我确定我需要在@SpringBootTest中添加一些附加注释,但是我不确定它是什么。

我尝试添加以下注释,但它们似乎都不起作用:

@AutoConfigureDataJpa
@AutoConfigureTestDatabase(connection = EmbeddedDatabaseConnection.H2)
@AutoConfigureTestEntityManager
@ImportAutoConfiguration

当然我不能将@DataJpaTest@SpringBootTest结合使用,但是我将如何创建完整的E2E测试?

0 个答案:

没有答案