【发布时间】:2014-12-24 20:54:42
【问题描述】:
我使用 specs2 与 Scala Play (2.3) 进行集成测试,并且我使用 mysql 数据库进行测试,而不是 H2 数据库。我的测试用例使用 WithApplication 和 FakeApplication 以及 db.default.url 的配置覆盖来指定测试(mysql)数据库。
问题是没有运行任何进化。因为没有创建表,所以测试用例全部爆炸。
如果我正常运行应用程序,而不是在测试中,然后应用 Evolutions,然后转储这个数据库并加载到测试数据库中,所有测试都可以通过(我在测试运行之间清理所有表以确保每个测试的数据库都是干净的)。
为什么进化不自动运行?我该怎么做才能让他们跑起来?注意:我不想使用 H2 和 InMemoryDatabase。我想使用 mysql 进行测试,就像我在生产中一样。我在网上找到了各种用于手动定位和运行进化的解决方案,但是这些解决方案都没有维护“play_evolutions”表,我也没有设法让它们在 Play 2.3 中正常工作。
【问题讨论】:
-
嗨,你能提供一个如何使用 mysql 数据库运行假应用程序的代码示例吗?
标签: database scala playframework specs2