【问题标题】:How do I pass args from command line to rake then rspec如何将 args 从命令行传递给 rake 然后 rspec
【发布时间】:2011-10-14 14:34:26
【问题描述】:

我正在尝试通过命令行传递几个变量来 rake 以在 rspec 中使用。

根据我收集到的信息,我可以这样做以将 args 传递到我的 rake 任务中:

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

但我使用的是 rspec,所以我的 rake 任务如下所示:

RSpec::Core::RakeTask.new(:my_task), :arg1, :arg2 do |t, args|
 puts args.arg1
 puts args.arg2
end

这是行不通的。

我还没有弄清楚如何将它传递给我的 rspec 规范文件

【问题讨论】:

  • 我不知道 rspec,但您的代码示例看起来有点错字。 RSpec::Core::RakeTask.new 中的括号应包含参数:RSpec::Core::RakeTask.new(:my_task, :arg1, :arg2)

标签: ruby rspec rake rspec2 rakefile


【解决方案1】:

你怎么称呼耙子?

对于您的示例,您必须调用:

rake mytask[val1,val2]

我不确定您的第二个代码示例。 args 应该是带有键 :arg1 和 :arg2 的散列。 所以你可以使用

puts args[:arg1]

我怀疑 args.arg1 是否有效。

【讨论】:

    【解决方案2】:

    距离最初的问题已经有一段时间了,但我不得不解决一个类似的问题。您不必改变很多最初的想法:

    RSpec::Core::RakeTask.new(:my_task, [:arg1, :arg2]) do |t, args|
     puts args.arg1
     puts args.arg2
    end
    

    然后调用它,例如通过:

    rake my_task["hello","world"]
    

    【讨论】:

      猜你喜欢
      • 2018-06-18
      • 2010-10-23
      • 1970-01-01
      • 2021-07-30
      • 2016-07-14
      • 1970-01-01
      • 2014-07-19
      • 2021-06-12
      • 2011-07-09
      相关资源
      最近更新 更多