如何将args从命令行传递给rake然后传递给rspec

时间:2011-07-27 20:15:32

标签: ruby rspec rake rspec2 rakefile

我正在尝试通过命令行传递几个变量来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规范文件

2 个答案:

答案 0 :(得分:0)

你怎么称耙?

对于您的示例,您必须致电:

rake mytask[val1,val2]

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

puts args[:arg1]

我怀疑args.arg1是否有效。

答案 1 :(得分:0)

自原始问题以来已经有一段时间了,但我必须解决类似的问题。你不必改变你最初的想法:

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

然后调用它,例如通过:

rake my_task["hello","world"]