2011-07-27 13 views
5

मैं rspec में उपयोग करने के लिए रेक करने के लिए कमांड लाइन के माध्यम से कुछ चर पारित करने का प्रयास कर रहा हूं।मैं कमांड लाइन से रेक के लिए तर्क कैसे पास करूं तो rspec

मैं क्या मैं यह नहीं मेरी रेक कार्य में आर्ग पारित करने के लिए कर सकते हैं इकट्ठा से

:

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

लेकिन मैं rspec उपयोग कर रहा हूँ तो मेरे रेक कार्य इस प्रकार है:

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

जो नहीं करता है काम नहीं करता

भी मैं पता लगा नहीं किया कि मेरे rspec कल्पना फाइल करने के लिए इसे पारित करने के

+0

मुझे rspec नहीं पता, लेकिन आपका कोड उदाहरण ऐसा लगता है कि इसमें थोड़ा टाइपो है। आरएसपीईसी :: कोर :: RakeTask.new में ब्रैकेट्स में तर्क शामिल होना चाहिए: आरएसपीसी :: कोर :: रेकैकस्क.न्यू (: my_task,: arg1,: arg2) – knut

उत्तर

0

आप रेक कैसे कहते हैं?

rake mytask[val1,val2] 

मैं अपने 2 कोड उदाहरण के बारे में यकीन नहीं है:

अपने उदाहरण के लिए आप कॉल करने के लिए की है। तर्क कुंजी के साथ हैश होना चाहिए: arg1 और: arg2। तो आप उपयोग कर सकते

puts args[:arg1] 

मैं संदेह में हूँ अगर args.arg1 काम करेंगे।

0

मूल प्रश्न के बाद से यह थोड़ी देर हो गया है, लेकिन मुझे एक ही समस्या हल करना पड़ा। आपको अपने शुरुआती विचार को बदलने की ज़रूरत नहीं है:

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

फिर इसे कॉल करें उदा। के माध्यम से:

rake my_task["hello","world"] 
संबंधित मुद्दे