2011-07-27 11 views
5

Estoy tratando de pasar un par de variables a través de la línea de comando para rake para ser utilizado en rspec.Cómo paso args de la línea de comando a rastrillar luego rspec

Por lo que sé que puedo hacer esto para pasar argumentos en mi tarea rake:

task :my_task, :arg1, :arg2 do |t, args| 
    puts "Args were: #{args}" 
end 

pero yo estoy usando rspec así que mi tarea rastrillo se ve así:

RSpec::Core::RakeTask.new(:my_task), :arg1, :arg2 do |t, args| 
puts args.arg1 
puts args.arg2 
end 

la que doesn no funciona

también que no he encontrado la manera de pasarlo a mi archivo de especificaciones rspec

+0

No sé rspec, pero su ejemplo de código parece que tiene un pequeño error tipográfico. Los corchetes en RSpec :: Core :: RakeTask.new deben incluir los argumentos: RSpec :: Core :: RakeTask.new (: my_task,: arg1,: arg2) – knut

Respuesta

0

¿Cómo se llama rastrillo?

Para su ejemplo, usted tiene que llamar:

rake mytask[val1,val2] 

No estoy seguro acerca de su segundo ejemplo de código. args debe ser un hash con las teclas: arg1 y: arg2. Así que es posible utilizar

puts args[:arg1] 

estoy en duda si args.arg1 funcionará.

0

Ha pasado un tiempo desde la pregunta original, pero tuve que resolver un problema similar. Usted no tiene que cambiar gran parte de su idea inicial:

RSpec::Core::RakeTask.new(:my_task, [:arg1, :arg2]) do |t, args| 
puts args.arg1 
puts args.arg2 
end 

Entonces lo llaman, por ejemplo, a través de:

rake my_task["hello","world"] 
Cuestiones relacionadas