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
关于ruby - 将参数传递给 Rspec SpecTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926364/