मैं रूबी के लिए नया हूं, और मैं रेक, आरएसपीसी, और ककड़ी सीखने की कोशिश कर रहा हूं। मुझे कुछ कोड मिला जो मुझे मेरे रेक कार्यों का परीक्षण करने में मदद करेगा, लेकिन मुझे इसे काम करने में परेशानी हो रही है। मेरी spec_helper.rb फ़ाइल मेंrspec (और ककड़ी) में एक रेक कार्य का परीक्षण
def describe_rake_task(task_name, filename, &block)
require "rake"
describe "Rake task #{task_name}" do
attr_reader :task
before(:all) do
@rake = Rake::Application.new
Rake.application = @rake
load filename
@task = Rake::Task[task_name]
end
after(:all) do
Rake.application = nil
end
def invoke!
for action in task.instance_eval { @actions }
instance_eval(&action)
end
end
instance_eval(&block)
end
end
: मैं यहाँ बताया गया था: http://blog.codahale.com/2007/12/20/rake-vs-rspec-fight/ इस ड्रॉप करने।
मैं इस कोड बाहर ले जाना और इस तरह मेरी ककड़ी चरणों में इसे चलाने के लिए प्रबंधित किया है:
When /^I run the update_installers task$/ do
@rake = Rake::Application.new
Rake.application = @rake
load "lib/tasks/rakefile.rb"
@task = Rake::Task["update_installers"]
for action in @task.instance_eval { @actions }
instance_eval(&action)
end
instance_eval(&block)
Rake.application = nil
end
लेकिन जब मैं rspec में काम कर बातें प्राप्त करने की कोशिश, मैं निम्नलिखित मिल त्रुटि। आह्वान में instance_eval' /spec/spec_helper.rb: 21:in
ब्लॉक में: में
ArgumentError /spec/spec_helper.rb (2 के लिए 1)
तर्कों कीगलत नंबर 'रैक कार्य install_grapevine mygrapevine निर्देशिका के लिए स्थापित करना चाहिए': 21! ' /spec/spec_helper.rb: 20:
each' /spec/spec_helper.rb: 20:in
में शामिल हों! ' `ब्लॉक /spec/tasks/rakefile_spec.rb:12:in (2 स्तर) में '
दुर्भाग्य से, मैं सिर्फ बेल्ट से नीचे गहरे लाल रंग का के एक सप्ताह के तहत मिल गया है, तो metaprogramming सामान खत्म हो गया है मेरा सिर। क्या कोई मुझे सही दिशा में रास्ता दिखा सकता है?
आरएसपीईसी के बिना समान: http://stackoverflow.com/questions/3530/how-do-i-rake-tasks-within-a-ruby-script –