2010-05-28 31 views
5

耙允許的語法如下:參數傳遞到一個RSpec SpecTask

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

我希望能夠做同樣的,但RSpecs SpecTask。

下不幸失敗:

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 

是否有可能與SpecTask實現這一點,還是有另一種方法?

回答

6

如果rspec不支持args變量,則可以將它作爲命令行參數和/或來自其他位置的變量傳遞。

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

感謝德里克,這很好地工作。 – 2010-06-01 00:16:27