【问题标题】:Passing arguments to an Rspec SpecTask将参数传递给 Rspec SpecTask
【发布时间】:2010-05-28 02:45:05
【问题描述】:

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

【问题讨论】:

    标签: ruby rspec rake


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      相关资源
      最近更新 更多