2015-01-12 7 views
10

Ich benutze Play Framework 2.3 und IntelliJ IDEA 14. Ich benutze ein Mailer Plugin in meiner Anwendung. Ich schrieb ein paar Funktionstests, die perfekt funktionieren, wenn ich den test Befehl in der SBT-Konsole ausführen, nachdem das Hinzufügen dieser Zeile build.sbt:Konfigurieren von IntelliJ, so dass eine bestimmte Konfigurationsdatei zum Ausführen von Tests benötigt wird?

javaOptions in Test += "-Dconfig.file=conf/application.test.conf" 

Und diese in die Datei conf/application.test conf:

smtp.mock=yes 

Leider, wenn ich Tests direkt von IntelliJ laufen, bekomme ich diesen Fehler:

java.lang.RuntimeException: smtp.host needs to be set in application.conf in order to use this plugin (or set smtp.mock to true) 

Ich habe versucht, diese Tests mit dem VM-Argument -Dconfig.file=conf/application.test.conf ohne Erfolg zu starten.

Hier sind zwei Beispiele für die Tests ich auszuführen versuchen:

@Test 
public void testWithServer() { 
    running(testServer(3333),() -> { 
     assertThat(WS.url("http://localhost:3333").get().get(1000).getStatus()).isEqualTo(OK); 
    }); 
} 

@Test 
public void testWithBrowser() { 
    running(testServer(3333), HTMLUNIT, browser -> { 
     browser.goTo("http://localhost:3333"); 
     assertThat(browser.$("title").getText()).isEqualTo("Welcome"); 
    }); 
} 

jemand mir auf diesem helfen?

Danke!

Antwort

8

Wenn ich mich nicht irre, wird die config.file Einstellung und somit die Datei conf/application.test.conf von SBT verwendet. Daher lädt IntelliJ IDEA beim Ausführen des Tests es und seine enthaltenen Einstellungen nicht, selbst wenn Sie die config.file Einstellung über das Textfeld VM-Optionen angeben. Stattdessen müssen Sie die -Dsmtp.mock=yes Einstellung (alle anderen Einstellungen, die sich in der Datei application.test.conf befinden) in das Textfeld VM-Optionen eingeben.

Wenn das funktioniert, können Sie das/die Argument (e) im Textfeld VM-Optionen zu den JUnit-Einstellungen unter der Gruppe Standard im Dialogfeld Ausführen/Debug-Konfiguration hinzufügen, damit neue Tests von Ihnen erstellt werden.

+0

Ich hatte gehofft, dass etwas IntelliJ jede Konfigurationsdatei nehmen könnte, aber das funktioniert so vielen Dank. Und du hast Recht, diese Datei wird von SBT verwendet. – Thomas

+0

Sie sollten [eine Feature-Anforderung öffnen] (https://youtrack.jetbrains.com) fragen, ob Test- und Anwendungs-Run/Debug-Konfigurationen in der Lage sind, eine Konfigurationsdatei zum Festlegen von VM-Optionen zu erstellen. Ich denke, das wäre eine großartige Verbesserung. Veröffentlichen Sie hier die ID/den Link der Anfrage und ich würde sicherlich dafür stimmen. Andere würden wahrscheinlich auch. – Javaru

+0

Gute Idee. Hier ist der [Link] (https://youtrack.jetbrains.com/issue/IDEA-135173). – Thomas

2

Wählen Sie in Ihren Ausführungskonfigurationen JUnit aus, und klicken Sie dann auf den Schraubenschlüssel, um die Standardkonfiguration zu bearbeiten. Fügen Sie dann in den VM-Optionen -Dconfig.file=/absolute/path/to/application.test.conf hinzu.

Verwandte Themen