2011-12-11 20 views
5

Sono in una situazione, in cui ho un numero di test scritti ScalaTest (compatibile con JUnit) e voglio misurare il livello di codecoverage ottenuto durante l'esecuzione del test.Misurare la copertura del codice Scala nei test in Eclipse

Non voglio usare direttamente SBT, ma ho un progetto di Eclipse Scala, nel quale ho un numero di casi di test che voglio eseguire.

Quale sarebbe il modo migliore per me di andare?

+1

Quale strumento di creazione si usa, se non sbt. Maven? Vuoi testare il codice scala o hai solo scritto i tuoi test in scala? – Steffen

+0

Sto usando la normale eclissi "scala builder" ecc. E quando ho finito sto esportando i progetti come plugin di eclissi. Voglio testare il codice scala, e anche i test sono scritti in Scala. – StefanE

risposta

3

Io uso EclEmma per la copertura del codice in Eclipse. Installalo usando il sito di aggiornamento.

Nota che non verrà visualizzato nella prospettiva Scala, solo la prospettiva Java, ma va bene perché puoi ancora eseguire i test di unità basati su Scala in questo modo.

Quando lo si installa, aggiunge un nuovo pulsante "Esegui" alla barra degli strumenti. Quando si utilizza questo è in esecuzione i test unitari che si sceglie, genera un report di copertura, e mette in evidenza il codice per mostrare ciò che è stato e non è stato coperto.

L'ho appena testato con un progetto Scala con i test delle unità di Scala e sembra funzionare bene.

+1

Il plug-in EclEmma ora si presenta nella prospettiva Scala! – Mark

+0

non funziona per lo scalatest –

+0

funziona, ma è necessario annotare la classe per eseguire con un junit runner –

0

ho questo lavoro in scala per "classi ScalaTest semplici"

tutto ciò che richiede è quello di aggiungere un'annotazione alla tua classe scalatest per farla funzionare come un Junit (vedi annotazione sotto). Questo utilizza scalatest proprio junitrunner.

@RunWith (classOf [JUnitRunner]) classe MyTest estende FeatureSpec con Matchers con GivenWhenThen con StrictLogging {

una volta che hai fatto questo, vedrete che ora è possibile eseguire questa classe in eclisse come " scala junit test ". Sarai anche in grado di "coprire come -> test di junit".

Se hai installato il plug-in di eclemma, vedrai il pannello di copertura (potresti doverlo aggiungere manualmente al tuo scala scala) con la copertura fornita dal tuo test e otterrai anche il rosso/verde/giallo copertura linea per linea nelle tue classi.

la vita è buona!

+0

solo per rivelare qualche dettaglio in più, sto usando junit 4.12, scalatest 2.2.5, eclipse mars –

+0

maggiori informazioni sul più piccolo junitrunner: http://www.scalatest.org/user_guide/using_junit_runner –