tengo una serie de tareas en el rastrillo de un Rakefile la que me gustaría probar como parte de las especificaciones de mi etc. Cada tarea se define en la forma:¿Puedo anular tarea: entorno en test_helper.rb para probar tareas de rake?
task :do_somthing => :environment do
# Do something with the database here
end
Cuando el: tarea ambiente establece un ActiveRecord/Conexión y clases de la base de datos DataMapper. No estoy usando esto como parte de Rails, pero tengo una serie de pruebas que me gusta ejecutar como parte de BDD.
Este fragmento ilustra cómo estoy tratando de probar las tareas de rake.
def setup
@rake = Rake::Application.new
Rake.application = @rake
load File.dirname(__FILE__) + '/../../tasks/do_something.rake'
end
should "import data" do
@rake["do_something"].invoke
assert something_in_the_database
end
Así que mi solicitud de ayuda - ¿es posible pasar por encima de la: tarea ambiente en mi archivo test_helper.rb así que mis pruebas rastrillo interactúa con la base de datos de mi prueba, en lugar de la producción? He intentado redefinir la tarea en el archivo auxiliar, pero esto no funciona.
Cualquier ayuda para una solución sería genial, ya que he estado atascado en esto la semana pasada.
Gracias por su respuesta Mike. Mientras tanto, he estado jugando un poco más con Rake, y creo que estos dos métodos en test_helper.rb podrían ser una solución. def rake_up Rake.application = Rake :: Application.new Rake :: Task.define_task: medio ambiente Rake.application final rake_down def Rake.application = nil final –
Aparece el enlace a esa entrada en el blog estar muerto. El único lugar donde pude encontrar el contenido está aquí: [Qué poner en las tareas de Rake] (http://www.artima.com/forums//threaded.jsp?forum=123&thread=251328) – ThomasW