Pergunta

Eu tenho que testar um programa que leva um arquivo de entrada. Coloquei todos os arquivos de entrada dentro de uma pasta e agora quero usar o SBT e o Scalatest para ter os seguintes recursos:

  • Testall: Invoque o programa com um arquivo de entrada de cada vez para todos os arquivos
  • Teste um: Invoque o programa com um arquivo de entrada fornecido como argumento para test Comando do SBT Console

Por enquanto, o nome de pastagem é um caminho fixo, portanto, a lista de todos os arquivos pode ser obtida por:

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

Alguém pode me dar uma breve idéia sobre qual classe mais escalatente é mais adequada para esse fim?

Foi útil?

Solução

Eu acho que você deve considerar refatorar o programa para que você tenha um método que leve um InputStream em vez de um arquivo. Dessa forma, você pode testar o método sem se preocupar com arquivos. É claro que depende da estrutura e tamanho dos arquivos.

Se você não quiser fazer isso, pode implementar sua própria tarefa SBT com um parâmetro (o nome do arquivo).

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top