ruby on rails - include statement works in spec, not in rake task -
i have module stored in root/vendor/app_name/lib/qa.rb
, rake task in root/vendor/app_name/lib/qa.rake
this top of qa.rb
module qa include module1, module2 ... end
and top of rake task has require 'qa'
module2 , module1 both stored in root/vendor/app_name/app/models/module_name
when run test, stored in root/spec/app_name/unit/qa/qa_spec.rb
, tests pass.
when run rake task calls method in qa.rb, following error:
nameerror: uninitialized constant qa::module1 /root/vendor/app_name/lib/qa.rb:2:in `<module:qa>' /root/vendor/app_name/lib/qa.rb:1:in `<top (required)>' /root/vendor/app_name/lib/tasks/qa.rake:2:in `block in <top (required)>' /root/vendor/app_name/lib/tasks/qa.rake:1:in `<top (required)>' /var/lib/gems/2.1.0/gems/zeus-0.15.3/lib/zeus/load_tracking.rb:50:in `load' /var/lib/gems/2.1.0/gems/zeus-0.15.3/lib/zeus/load_tracking.rb:50:in `load' /var/lib/gems/2.1.0/gems/zeus-0.15.3/lib/zeus/load_tracking.rb:43:in `load' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/engine.rb:654:in `block in run_tasks_blocks' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/engine.rb:654:in `each' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/engine.rb:654:in `run_tasks_blocks' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/application.rb:383:in `block in run_tasks_blocks' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/engine/railties.rb:13:in `each' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/engine/railties.rb:13:in `each' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/application.rb:383:in `run_tasks_blocks' /var/lib/gems/2.1.0/gems/railties-4.1.8/lib/rails/engine.rb:449:in `load_tasks' /vagrant/rakefile:6:in `<top (required)>'
why getting error here not in test?
try describe rake task as
task qa: :environment ... end
that tell rake load application environment
Comments
Post a Comment