Scala: Définition des cas de test basé sur le dossier
Question
Je dois tester un programme qui prend un fichier d'entrée. J'ai mis tous les fichiers d'entrée dans un dossier et maintenant je veux utiliser SBT et ScalaTest avoir des caractéristiques suivantes:
- testall: Invoke le programme avec un fichier d'entrée à la fois pour tous les fichiers
- Tester l'une: appeler le programme avec un fichier d'entrée fourni en argument de la commande de console
test
SBT
Pour l'instant foldername est un chemin fixe, de sorte que la liste de tous les fichiers peuvent être obtenus par:
val dir = new File("tests\\");
val files = dir.listFiles.filter(
f => """.*\.extension$""".r.findFirstIn(f.getName).isDefined);
Quelqu'un peut-il me donner une brève idée de quelle classe scalatest est le mieux adapté à cet effet?
La solution
Je pense que vous devriez envisager refactorisation le programme afin que vous avez une méthode qui prend un InputStream
plutôt qu'un fichier. De cette façon, vous pouvez tester la méthode sans se soucier des fichiers. Bien sûr, cela dépend de la structure et la taille des fichiers.
Si vous ne voulez pas faire que vous pouvez mettre en œuvre votre propre SBT tâche avec un paramètre (le nom du fichier).
http://code.google.com/p/simple -build-outil / wiki / CustomActions
http://code.google.com/p/simple -build-outil / wiki / MethodTasks