2010-05-28 5 views
5

Rake permet la syntaxe suivante:arguments transmis à un Rspec SpecTask

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

Je voudrais être en mesure de faire la même chose, mais avec RSpecs SpecTask.

Ce qui suit échoue malheureusement:

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 

Est-il possible d'y parvenir avec un SpecTask, ou est-il une autre approche?

Répondre

6

Si rspec ne prend pas en charge la variable args, vous pouvez le transmettre en tant que paramètre de ligne de commande et/ou une variable d'un autre emplacement.

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

grâce Derick, qui fonctionne bien. –