我想针对Play Slick托管数据库编写数据库集成测试,并使用Play文档中描述的帮助方法Evolutions.applyEvolutions(database)
和Evolutions.cleanupEvolutions(database)
来应用和取消应用Evolutions。然而,这些需要一个play.api.db.Database
实例,这是我无法看到的。 jdbc
库与play-slick冲突,那么如何从光滑中获取数据库实例?我使用以下内容来获得一个灵活的数据库def来运行光滑的查询:
val dbConfig = DatabaseConfigProvider.get[JdbcProfile]("my-test-db")(FakeApplication())
import dbConfig.driver.api._
val db = dbConfig.db
谢谢,
李亚男
答案 0 :(得分:1)
以下是我如何使用Guice:
我注入了Guice:
lazy val appBuilder = new GuiceApplicationBuilder()
lazy val injector = appBuilder.injector()
lazy val databaseApi = injector.instanceOf[DBApi] //here is the important line
(你必须导入play.api.db.DBApi。)
在我的测试中,我只是执行以下操作(实际上我使用其他数据库进行测试):
override def beforeAll() = {
Evolutions.applyEvolutions(databaseApi.database("default"))
}
override def afterAll() = {
Evolutions.cleanupEvolutions(databaseApi.database("default"))
}
(我使用的是Scalatest但与其他测试框架的情况相同。)