2010-08-10 19 views
5

Tengo que probar un programa que toma un archivo de entrada. He puesto todos los archivos de entrada dentro de una carpeta y ahora quiero usar SBT y ScalaTest tener las características siguientes:Scala: Definición de casos de prueba basados ​​en la carpeta

  • testall: invocar el programa con un archivo de entrada a la vez para todos los archivos
  • prueba uno : Invocar el programa con un archivo de entrada proporcionada como argumento para test comando desde la consola SBT

por el momento se foldername una trayectoria fija, por lo que la lista de todos los archivos se puede obtener:

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

¿Alguien me puede dar una breve idea de qué clase de scalatest es más adecuada para este propósito?

Respuesta

2

creo que usted debe considerar refactorización el programa para que tenga un método que toma un InputStream en lugar de un archivo. De esa forma puedes probar el método sin preocuparte por los archivos. Por supuesto, depende de la estructura y el tamaño de los archivos.

Si no quiere hacer que usted puede implementar su propio SBT de tareas con un parámetro (nombre de archivo).

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

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

+0

gracias, no puedo modificar el código fuente para aceptar InputStream sin embargo, puedo hacer los cambios que aparecen en el ejemplo de código. Gracias por responder. – thequark

Cuestiones relacionadas