Ich möchte mein Evolution Script am Anfang jeder Testdatei manuell ausführen. Ich arbeite mit Play! 2.4 und Slick 3.Wie man manuelle Entwicklungen in Tests mit Slick and Play anwendet! 2.4
Gemäß der Dokumentation, scheint der Weg zu gehen zu sein:
Evolutions.applyEvolutions(database)
aber ich schaffe keine Instanz meiner Datenbank zu erhalten. Im documentationplay.api.db.Databases
wird importiert, um eine Datenbankinstanz zu bekommen, aber wenn ich versuche, es zu importieren, ich diesen Fehler: object Databases is not a member of package play.api.db
Wie kann ich eine Instanz meiner Datenbank zu erhalten, um die Evolution Skript ausführen?
Edit: wie in den Kommentaren gefragt, hier ist die gesamte Codequelle den Fehler geben:
import models._
import org.scalatest.concurrent.ScalaFutures._
import org.scalatest.time.{Seconds, Span}
import org.scalatestplus.play._
import play.api.db.evolutions.Evolutions
import play.api.db.Databases
class TestAddressModel extends PlaySpec with OneAppPerSuite {
lazy val appBuilder = new GuiceApplicationBuilder()
lazy val injector = appBuilder.injector()
lazy val dbConfProvider = injector.instanceOf[DatabaseConfigProvider]
def beforeAll() = {
//val database: Database = ???
//Evolutions.applyEvolutions(database)
}
"test" must {
"test" in { }
}
}
können Sie den Quellcode veröffentlichen, welche die verursacht Error? – kukido
Die gleiche Frage wird hier gestellt: http://stackoverflow.com/questions/31884182/play-2-4-2-play-slick-1-0-0-how-do-i-apply-database-evolutions- to-a-slick-man – Simon
Ich hatte Probleme mit der Antwort unten, die zuerst zu funktionieren schien, und fand eine andere Lösung, die ich hier referenziere anstatt zu kopieren: http://stackoverflow.com/questions/42368523/play-tests -mit-Datenbank-zu-viele-Verbindungen/42416309 # 42416309. – JulienD