2010-08-10 34 views
5

Tôi phải kiểm tra một chương trình có một tệp đầu vào. Tôi đã đặt tất cả các tập tin đầu vào bên trong một thư mục và bây giờ tôi muốn sử dụng SBT và ScalaTest để có các tính năng sau:Scala: Xác định các trường hợp kiểm tra dựa trên thư mục

  • TestAll: Gọi chương trình với một tập tin đầu vào tại một thời điểm cho tất cả các file
  • thử nghiệm một : Gọi chương trình với một tập tin đầu vào được cung cấp như là đối số để test lệnh từ SBT console

Đối với thời điểm hiện tại tên thư mục là một con đường cố định, vì vậy danh sách của tất cả các tập tin có thể được thu được bằng cách:

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

Bất kỳ ai có thể cho tôi một ý tưởng ngắn gọn về việc lớp scalatest nào phù hợp nhất cho mục đích này?

Trả lời

2

Tôi nghĩ bạn nên xem xét sắp xếp lại chương trình để bạn có phương thức lấy InputStream thay vì tệp. Bằng cách đó bạn có thể kiểm tra phương thức mà không phải lo lắng về tệp. Tất nhiên nó phụ thuộc vào cấu trúc và kích thước của các tập tin.

Nếu bạn không muốn làm điều đó, bạn có thể thực hiện Nhiệm vụ SBT của riêng mình với thông số (tên tệp).

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

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

+0

cảm ơn, tôi không thể sửa đổi mã nguồn để chấp nhận InputStream tuy nhiên tôi có thể làm thay đổi được liệt kê trong ví dụ mã. Cảm ơn bạn đã trả lời. – thequark

Các vấn đề liên quan