2016-04-14 5 views
6

Durante le ricerche sul tema dell'automazione dei miei test di integrazione, ho scoperto un buon plugin nel mondo dei maven chiamato FailSafe. mi dà fasi come pre-integrazione test, post-integrazione test e integrazione test.Test SBT/Scala e Integrazione

Collegandomi a queste fasi, posso avere altri plug-in che possono avviarsi/fermarsi ed eseguire immagini docker.

Il plugin ha anche un buon modo per distinguere tra UnitTests e IntegrationTests (anche se entrambi sono scritti in JUNIT).

Bene, ora la domanda è: come posso fare la stessa cosa con la combinazione Scala/SBT?

la mia richiesta è

  1. test di scrittura di integrazione in SpecFlow.
  2. I test di integrazione sono trattati in modo diverso rispetto ai test unitari.
  3. I test della prima unità vengono eseguiti.
  4. Quindi i contenitori di finestra mobile vengono creati ed eseguiti
  5. quindi vengono eseguiti i test di integrazione.
  6. La finestra mobile contiene sono spenti.
  7. i risultati dei test vengono acquisiti nei file. (proprio come i plugin surefire/failsafe).

È possibile in Scala/sbt combo?

+0

Mi sembra che tu abbia bisogno di un sistema di build CI. –

+0

Ne ho uno chiamato Jenkins. Attualmente esegue il progetto Maven insieme ai test di integrazione FailSafe. –

+0

Si può fare eseguire tutti questi passaggi. –

risposta

0

Ho trovato la risposta alla domanda. SBT fornisce i mezzi per fare test di integrazione e anche i metodi di impostazione e di pulizia per fare le cose come la creazione/distruzione dei contenitori docker

http://www.scala-sbt.org/0.13/docs/Testing.html

1

Una soluzione semplice è quello di eseguire $ sbt "~ it:test" (assicuratevi di test di integrazione sono in un pacchetto chiamato ' it ') per il test di integrazione che verrà eseguito automaticamente ogni volta che viene aggiornato il codice sorgente. Inoltre, $sbt "~ test" per il test automatico delle unità. Se si utilizza un IDE come IntelliJ IDEA, è possibile semplificare l'esecuzione in una configurazione personalizzata dall'IDE. Spero che questo aiuti un po '. Corro tutto il tempo quando lavoro.