2012-04-11 25 views
8

Trong các thử nghiệm rSpec của tôi, tôi kiểm tra khả năng tải ảnh lên hệ thống của tôi và lưu chúng với một người dùng cụ thể.rSpec phá hủy các tập tin sau khi kết thúc bộ

Điều này là tuyệt vời tuy nhiên khi các bài kiểm tra của tôi kết thúc, tôi có tất cả các tệp bổ sung này trên hệ thống của mình. Làm thế nào để tôi tự động xóa này sau khi hoàn thành bộ thử nghiệm của tôi.

nhờ mike

+0

sau mỗi lần bạn chạy Photo.delete_all để xóa mục nhập và hình ảnh db –

+0

Biết cách xóa thư mục tệp đính kèm được tải lên trong MInitest? – Jwan622

Trả lời

5

Tôi đã không được sử dụng Kẹp giấy, nhưng tôi giả định các tập tin được lưu ở một nơi hơi liên tục, chẳng hạn như (ví dụ ngẫu nhiên) tmp/kẹp giấy/ảnh/.

Nếu đó là trường hợp, trong vòng spec_helper của bạn, bạn có thể thêm:

config.after(:suite) do # or :each or :all 
    Dir["#{Rails.root}/tmp/paperclip/**/*"].each do |file| 
     File.delete(file) 
    end 
end 
+1

Nếu bạn thay đổi '*' cuối cùng thành '*. *' Thì bạn tránh tìm cách xóa các thư mục. – thomasfedb

+0

Nếu bạn sử dụng minitest thì sao? – Jwan622

9

Sẽ đơn giản hơn chỉ cần xóa toàn bộ thư mục test. Ngoài ra, hơi chi phí thấp hơn và dễ đọc hơn.

# spec_helper.rb 

config.after(:suite) do 
    FileUtils.rm_rf(Dir["#{Rails.root}/public/system/test"]) 
end 
+1

Giả định rằng bạn đang sử dụng: rails_env trong đường dẫn của bạn, như sau: 'path: ': rails_root/public/system /: rails_env /: class /: attachment /: id_partition /: style /: filename'' – Karen

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