2011-07-27 25 views
5

Tôi đang cố chuyển một vài biến thông qua dòng lệnh tới rake được sử dụng trong rspec.Làm cách nào để chuyển arg từ dòng lệnh sang rake sau đó rspec

Từ những gì tôi thu thập tôi có thể làm điều này để vượt qua args thành nhiệm vụ cào của tôi:

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

nhưng tôi đang sử dụng rspec vì vậy công việc cào của tôi trông như thế này:

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

mà doesn 't làm việc.

Tôi cũng không biết cách chuyển nó vào tệp spec rspec của tôi

+0

Tôi không biết rspec, nhưng ví dụ mã của bạn có vẻ như có lỗi đánh máy nhỏ. Các dấu ngoặc trong RSpec :: Core :: RakeTask.new nên bao gồm các đối số: RSpec :: Core :: RakeTask.new (: my_task,: arg1,: arg2) – knut

Trả lời

0

Làm thế nào để bạn gọi rake?

Ví dụ của bạn, bạn phải gọi:

rake mytask[val1,val2] 

Tôi không chắc chắn về mã ví dụ 2 của bạn. args phải là một băm với các khóa: arg1 và: arg2. Vì vậy, bạn có thể sử dụng

puts args[:arg1] 

Tôi nghi ngờ nếu args.arg1 sẽ hoạt động.

0

Đã lâu rồi kể từ câu hỏi ban đầu, nhưng tôi phải giải quyết một vấn đề tương tự. Bạn không cần phải thay đổi nhiều ý tưởng ban đầu của mình:

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

Sau đó gọi nó là ví dụ: qua:

rake my_task["hello","world"] 
Các vấn đề liên quan