2013-03-14 14 views
5

Devo definire una configurazione di test personalizzata in sbt che esegue test, ma con alcune impostazioni extra. Mi sono guardato intorno cercando di capire come farlo, ma non riesco a farlo bene.Definire configurazioni di test personalizzate in sbt

Quello che mi piacerebbe fare è qualcosa di simile: > test che dovrebbe eseguire la normale attività di test e > pipelinetest che sarebbe esattamente la stessa cosa del test, solo con (javaOptions += "-Dpipeline.run=run".

ho capito come l'insieme delle javaOptions per la prova, in questo modo: javaOptions in test += "-Dpipeline.run=run" quindi quello che vorrebbe essere in grado di fare è questo: javaOptions in pipelinetest += "-Dpipeline.run=run"

Come dovrei definire pipelinetest per raggiungere questo obiettivo? Questo deve essere un nuovo compito? O sarebbe un'impostazione in test. Sono molto nuovo da sbt e abbastanza confuso su questo al momento, e leggere la documentazione non ha aiutato, quindi qualsiasi aiuto sarebbe molto apprezzato.

+2

Vedere http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing.html, in particolare le sezioni su configurazioni di test aggiuntive e origini condivise. –

risposta

0

Ho solo una risposta parziale, ma ho pensato che questo potrebbe essere informazioni utili. Stavo solo cercando di fare qualcosa di simile per la build di SBT in Spark - volevo avere un modo per eseguire i test con un debugger. Il commento di Mark Harrah mi ha indirizzato nella giusta direzione. Il change I made was:

lazy val TestDebug = config("testDebug") extend(Test) ... baseProject .configs(TestDebug) .settings(inConfig(TestDebug)(Defaults.testTasks): _*) .settings(Seq( javaOptions in TestDebug ++= "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" .split(" ").toSeq))

questa sinistra le mie solite invocazioni di test, testOnly, ecc da solo, ma ora potrebbe anche funzionare testDebug:testOnly ..., che avrebbe utilizzato le opzioni extra sopra definiti. (probabilmente ha anche creato testDebug:test, ecc. con quelle opzioni extra, che non sono utili, ma vabbè.)

Non ho davvero capito perché, ma una parte importante per me per farlo funzionare era utilizzare inConfig(TestDebug)(Defaults.testTasks), anziché inConfig(TestDebug)(Defaults.testSettings).

Nel mio caso, ho avuto problemi a capire come (a) farlo funzionare per una build multi-progetto e (b) la nostra build è ancora più b/c è basata su un file POM, il che rende le definizioni del progetto diverse da ogni esempio.

Come al solito, il mio problema con sbt è che trovo informazioni che sembrano correlate, ma la mia build ha alcuni aspetti insoliti che mi rendono incapace di completare completamente la domanda; e anche se sembra che abbia bisogno di modifiche banali, senza una comprensione approfondita, è difficile modificare gli esempi.

Problemi correlati