2015-01-12 17 views
10

Sto usando Play Framework 2.3 e IntelliJ IDEA 14. Uso un plugin Mailer nella mia applicazione. Ho scritto un paio di test funzionali che funzionano perfettamente quando ho eseguito il comando test nella console SBT, dopo l'aggiunta di questa linea di build.sbt:Configurare IntelliJ in modo che sia necessario un file di configurazione specifico per eseguire i test?

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

E questo per il file conf/application.test .conf:

smtp.mock=yes 

Purtroppo, quando ho eseguito i test direttamente da IntelliJ, ottengo questo errore:

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

Ho provato a lanciare quei test con l'argomento VM -Dconfig.file=conf/application.test.conf, senza successo.

Ecco due esempi dei test Sto provando ad eseguire:

@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"); 
    }); 
} 

Qualcuno mi può aiutare su questo?

Grazie!

risposta

8

A meno che non mi sbaglio, l'impostazione config.file, e quindi il file conf/application.test.conf, viene utilizzata da SBT. In quanto tale, IntelliJ IDEA durante l'esecuzione del test non lo carica e le relative impostazioni contenute anche quando si specifica l'impostazione config.file tramite il campo di testo Opzioni VM. Invece, è necessario inserire l'impostazione -Dsmtp.mock=yes (qualsiasi altra impostazione presente nel file application.test.conf) nel campo di testo Opzioni VM.

Se ciò accade, è possibile aggiungere gli argomenti al campo di testo Opzioni VM alle impostazioni di JUnit nel gruppo Predefinito nella finestra di dialogo Esegui/Debug Configuration in modo che eventuali nuovi test creati vengano preimpostati.

+0

Speravo che qualcosa potesse fare in modo che IntelliJ prendesse qualsiasi file di configurazione, ma funziona così grazie mille. E hai ragione, questo file è usato da SBT. – Thomas

+0

È necessario [aprire una richiesta di funzione] (https://youtrack.jetbrains.com) chiedendo che le configurazioni di esecuzione/debug di test e applicazioni siano in grado di acquisire un file di configurazione per l'impostazione delle opzioni di VM. Penso che sarebbe un grande miglioramento. Invia qui l'ID/link della richiesta e sicuramente voterei per questo. Probabilmente anche altri. – Javaru

+0

Buona idea. Ecco il [collegamento] (https://youtrack.jetbrains.com/issue/IDEA-135173). – Thomas

2

Nelle configurazioni di corsa, selezionare JUnit, quindi fare clic sulla chiave inglese per modificare la configurazione predefinita. Quindi, nelle opzioni della macchina virtuale, aggiungi -Dconfig.file=/absolute/path/to/application.test.conf.

Problemi correlati