Ruby 将参数传递给Rspec SpecTask

Ruby 将参数传递给Rspec SpecTask,ruby,rspec,rake,Ruby,Rspec,Rake,Rake允许使用以下语法: 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.r

Rake允许使用以下语法:

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实现这一点,或者是否有其他方法?

如果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