Database 如何设置我的环境以使用h2进行测试,使用mysql进行开发?

Database 如何设置我的环境以使用h2进行测试,使用mysql进行开发?,database,maven,spring-data,h2,jhipster,Database,Maven,Spring Data,H2,Jhipster,我使用的是yojhipster生成器的默认配置,除了我使用mysql作为我的“dev”数据库。当我运行mvn测试时我的测试成功,没有失败 但是,我发现,如果我再次运行测试,套件将失败,因为它将针对“dev”数据库运行…在上一次测试运行后,该数据库不会“回滚”或“重置”。我更希望它运行在src/test/resources/config/application.yml中配置的内存中h2数据库上,每次运行后都会重置该数据库 如何使用h2进行测试,使用mysql进行开发 谢谢我不确定这是否是解决这个问

我使用的是
yojhipster
生成器的默认配置,除了我使用mysql作为我的“dev”数据库。当我运行
mvn测试时
我的测试成功,没有失败

但是,我发现,如果我再次运行测试,套件将失败,因为它将针对“dev”数据库运行…在上一次测试运行后,该数据库不会“回滚”或“重置”。我更希望它运行在
src/test/resources/config/application.yml中配置的内存中h2数据库上,每次运行后都会重置该数据库

如何使用h2进行测试,使用mysql进行开发


谢谢

我不确定这是否是解决这个问题的“正确”方法,但我通过创建一个新的配置文件“test”,使我的测试能够通过重复运行

然后我不得不做两件事:

1) 将src/test/resources/config/application.yml中的
spring.profile
更改为“test”而不是“dev”(使test application.yml与dev application.yml不同)

2) 在我的测试中使用
@ActiveProfiles(“test”)
而不是
@ActiveProfiles(“dev”)

test application.yml使用h2数据库,并根据需要在运行之间重置

注意:通过使用以下注释我的测试类,在不创建新概要文件的情况下,我还成功地进行了连续测试运行:

@Transactional
@TransactionConfiguration(defaultRollback = true)
作为

在测试结束时,事务将回滚,数据将被丢弃,留下一个新的环境供下一个测试执行