2010-05-28 37 views
5

Rake cho phép cú pháp sau:luận Passing một RSpec SpecTask

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

Tôi muốn để có thể làm điều tương tự, nhưng với RSpecs SpecTask.

Sau đây không may thất bại:

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 

Có thể đạt được điều này với một SpecTask, hoặc là có một cách tiếp cận khác?

Trả lời

6

nếu rspec không hỗ trợ biến args, bạn có thể chuyển nó thành tham số dòng lệnh và/hoặc biến từ vị trí khác.

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

nhờ Derick, mà hoạt động độc đáo. –

Các vấn đề liên quan