2010-08-10 14 views
5

Devo testare un programma che accetta un file di input. Ho messo tutti i file di input all'interno di una cartella e ora voglio usare SBT e ScalaTest avere seguenti caratteristiche:Scala: definizione di test case sulla cartella

  • TestAll: richiamare il programma con un file di input alla volta per tutti i file
  • prova uno : Richiamare il programma con un file di input fornito come argomento per test comando da console sbt

per il momento foldername è un percorso fisso, quindi l'elenco di tutti i file può essere ottenuto:

val dir = new File("tests\\"); 
val files = dir.listFiles.filter(
    f => """.*\.extension$""".r.findFirstIn(f.getName).isDefined); 

Qualcuno può darmi una breve idea di quale classe più scalata sia la più adatta per questo scopo?

risposta

2

Penso che dovresti prendere in considerazione il refactoring del programma in modo da avere un metodo che prende uno InputStream piuttosto che un file. In questo modo puoi testare il metodo senza preoccuparti dei file. Ovviamente dipende dalla struttura e dalla dimensione dei file.

Se non si desidera eseguire ciò è possibile implementare la propria attività SBT con un parametro (il nome file).

http://code.google.com/p/simple-build-tool/wiki/CustomActions

http://code.google.com/p/simple-build-tool/wiki/MethodTasks

+0

grazie, non posso modificare il sorgente di accettare InputStream comunque posso apportare le modifiche elencate nel codice di esempio. Grazie per aver risposto. – thequark

Problemi correlati