Scala: определение тестовых случаев на основе папки - PullRequest
5 голосов
/ 11 августа 2010

Мне нужно протестировать программу, которая принимает один входной файл. Я поместил все входные файлы в папку, и теперь я хочу использовать SBT и ScalaTest, чтобы иметь следующие функции:

  • TestAll: запускать программу по одному входному файлу за раз для всех файлов
  • Test one: вызвать программу с одним входным файлом, предоставленным в качестве аргумента для команды test из консоли sbt

В настоящее время foldername является фиксированным путем, поэтому список всех файлов можно получить:

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

Может ли кто-нибудь дать мне краткое представление о том, какой самый масштабный класс лучше всего подходит для этой цели?

1 Ответ

2 голосов
/ 13 августа 2010

Я думаю, вы должны рассмотреть возможность рефакторинга программы, чтобы у вас был метод, который принимает InputStream, а не файл.Таким образом, вы можете протестировать метод, не беспокоясь о файлах.Конечно, это зависит от структуры и размера файлов.

Если вы не хотите этого делать, вы можете реализовать свою собственную задачу SBT с параметром (имя файла).

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

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

...