1

我使用yo jhipster生成器的默认配置,除了我使用 mysql 作为我的“开发”数据库。当我运行mvn test我的测试时,没有失败。

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

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

谢谢

4

1 回答 1

1

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

然后我必须做两件事:

1)将spring.profilesrc/test/resources/config/application.yml 更改为“test”而不是“dev”(使测试 application.yml 与 dev 不同)

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

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

注意:我在连续的测试运行中也取得了一些成功,而没有通过注释我的测试类来创建新的配置文件:

@Transactional
@TransactionConfiguration(defaultRollback = true)

作为...

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

https://spring.io/guides/tutorials/data/3/

于 2014-06-11T19:16:27.687 回答