Ich habe die Scala-Testbeispiele mit Specs2 aus der offiziellen Play-Dokumentation verfolgt. Ich bemerke, dass sie WithApplication
verwenden, um eine gefälschte Anwendung zu testen gegen, mit clode wie folgt aus zu starten:Play Famework 2 - Scala - Starten Sie eine Anwendung für Testsuite
"something" should {
"do X" in new WithApplication { /* ... */ }
"do Y" in new WithApplication { /* ... */ }
"do Z" in new WithApplication { /* ... */ }
}
Das ist in Ordnung und alles, aber das Problem, dass ich habe, ist, dass ich die Kosten entstehen Meine Anwendung startet jedes Mal, wenn dies geschieht. Dies ist nicht unbedingt "schnell" oder zumindest nicht schnell genug, wenn Ihre Testsuite auf eine vernünftige Größe angewachsen ist. Ich habe versucht, Dinge zu tun wie:
val app = FakeApplication()
"something" should {
"do X" in new WithApplication(app) { /* ... */ }
"do Y" in new WithApplication(app) { /* ... */ }
"do Z" in new WithApplication(app) { /* ... */ }
}
und
"something" should {
val app = FakeApplication()
Helpers.running(app) {
"do X" in { /* ... */ }
"do Y" in { /* ... */ }
"do Z" in { /* ... */ }
}
}
Die erste scheint für den ersten Test zu arbeiten und dann beschwert sich über db-Verbindungsprobleme zu den späteren Tests. Ich nehme an, hier wird etwas heruntergefahren oder etwas (nicht sicher was).
Die zweite funktioniert überhaupt nicht, weil sie sich darüber beschwert, dass es keine laufende Anwendung gibt, von der ich mir auch nicht sicher bin.
Jede Hilfe wird sehr geschätzt. Vielen Dank!