代码之家  ›  专栏  ›  技术社区  ›  Bayard Randel

向rspec spectask传递参数

  •  5
  • Bayard Randel  · 技术社区  · 14 年前

    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
    

    有没有可能通过一个幽灵来实现这一点,或者有没有其他的方法?

    1 回复  |  直到 14 年前
        1
  •  6
  •   Derick Bailey    14 年前

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