2010-05-28 10 views
5

Rake permite la siguiente sintaxis:Paso de argumentos a un Rspec SpecTask

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

Me gustaría ser capaz de hacer lo mismo, pero con RSpecs SpecTask.

La siguiente lamentablemente falla:

desc "Run example with argument" 
SpecTask.new('my_task'), :datafile do |t, args| 
    t.spec_files = FileList['*_spec.rb -datafile=#{args}'] 
    t.spec_opts = ["-c -f specdoc"] 
end 

¿Es posible lograr esto con un SpecTask, o hay un enfoque alternativo?

Respuesta

6

si rspec no admite la variable args, puede pasarla como un parámetro de línea de comando y/o una variable desde otra ubicación.

rake datafile=somevalue

@datafile = ENV["datafile"] 

desc "Run example with argument" 
SpecTask.new :my_task do |t| 
    t.spec_files = FileList["*._spec.rb -datafile=#{@datafile}"] 
    #... etc 
end 
+0

gracias Derick, que funciona muy bien. –

Cuestiones relacionadas