2012-04-11 12 views
8

En mis pruebas de rSpec, pruebo la capacidad del clip para cargar fotos en mi sistema y guardarlas con un usuario dado.rSpec destruir archivos después de finalizar la suite

Esto es genial sin embargo en mis pruebas de acabado, tengo todos estos archivos extra en mi sistema. ¿Cómo puedo eliminar esto automáticamente al completar mi suite de pruebas?

gracias micrófono

+0

después de cada debería ejecutar Photo.delete_all por lo que se elimina la entrada db y la imagen –

+0

saber cómo eliminar la carpeta de archivos adjuntos subidos en Minitest? – Jwan622

Respuesta

5

No he utilizado Paperclip, pero asumen esos archivos se guardan en un lugar algo constante, tales como (ejemplo aleatorio) tmp/paperclip/fotos/.

Si ese es el caso, dentro de su spec_helper, puede agregar:

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

Si cambia el último '*' a '*. *', Entonces evitará tratar de eliminar directorios. – thomasfedb

+0

¿Qué pasa si usa minitest? – Jwan622

9

Es más sencillo que acaba de eliminar todo el directorio test. Además, ligeramente menos sobrecarga y es más fácil de leer.

# spec_helper.rb 

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

Esto supone que está utilizando: rails_env en su: ruta, como lo siguiente: 'ruta: ': raíz_rails/public/system /: rails_env /: clase /: archivo adjunto /: id_partition /: estilo /: nombre de archivo'' – Karen

Cuestiones relacionadas