NameError: неинициализированная константа Sprockets :: Engines - PullRequest
0 голосов
/ 15 апреля 2020

rails 5.0 (обновление с 4.2 до 5.0) ruby 2.6.4, rspec 3.6

Я обновляю приложение rails с rails 4.2 до 5.2. В данный момент пытаюсь добраться до 5.0. Я исправляю устаревшие и тесты, но в настоящее время застрял на этой ошибке при выполнении моих spe c тестов. Перечислим одну спецпрограмму c здесь, чтобы сэкономить место, но все они терпят неудачу с одной и той же ошибкой (ниже).

Я прочитал тонну потоков, похожих на эту, но нет реальных ответов о том, как это исправить - или моя проблема.

tests:

ruby-2.6.4  git:(upstream ⚡ rails5) 5M
jdc44@dev:~/apps/sha_student_services$ bx rspec spec/controllers/manage/course_reports_controller_spec.rb 

DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot. See https://github.com/thoughtbot/factory_bot/blob/v4.9.0/UPGRADE_FROM_FACTORY_GIRL.md for further instructions. (called from require at /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/site_ruby/2.6.0/bundler/runtime.rb:81)

An error occurred while loading ./spec/controllers/manage/course_reports_controller_spec.rb.
Failure/Error: require File.expand_path("../../config/environment", __FILE__)

NameError:
  uninitialized constant Sprockets::Engines
# ./vendor/bundle/ruby/2.6.0/gems/less-rails-2.6.0/lib/less/rails/railtie.rb:17:in `block in <class:Railtie>'
# ./vendor/bundle/ruby/2.6.0/gems/activesupport-5.0.7.2/lib/active_support/lazy_load_hooks.rb:67:in `block in execute_hook'
# ./vendor/bundle/ruby/2.6.0/gems/activesupport-5.0.7.2/lib/active_support/lazy_load_hooks.rb:60:in `with_execution_control'
# ./vendor/bundle/ruby/2.6.0/gems/activesupport-5.0.7.2/lib/active_support/lazy_load_hooks.rb:65:in `execute_hook'
# ./vendor/bundle/ruby/2.6.0/gems/activesupport-5.0.7.2/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks'
# ./vendor/bundle/ruby/2.6.0/gems/activesupport-5.0.7.2/lib/active_support/lazy_load_hooks.rb:49:in `each'
# ./vendor/bundle/ruby/2.6.0/gems/activesupport-5.0.7.2/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/application/bootstrap.rb:78:in `block in <module:Bootstrap>'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:30:in `instance_exec'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:30:in `run'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:55:in `block in run_initializers'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:54:in `run_initializers'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/application.rb:352:in `initialize!'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
# ./config/environment.rb:8:in `<top (required)>'
# ./spec/spec_helper.rb:8:in `require'
# ./spec/spec_helper.rb:8:in `<top (required)>'
# ./spec/controllers/manage/course_reports_controller_spec.rb:1:in `require'
# ./spec/controllers/manage/course_reports_controller_spec.rb:1:in `<top (required)>'
No examples found.


Finished in 0.00039 seconds (files took 3.49 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

Устаревание FactoryGirl будет обновлено до FactoryBot, я просто еще не там.

В приведенном выше выводе я вижу эти ошибки / подсказки :

# ./spec/controllers/manage/course_reports_controller_spec.rb:1:in `<top (required)>'

В этом файле строка 1 равна require 'spec_helper'

# ./spec/spec_helper.rb:8:in `<top (required)>'

В этом файле строка 8: require File.expand_path("../../config/environment", __FILE__)

# ./config/environment.rb:8:in `<top (required)>'

В этом файле строка 8 выглядит следующим образом: StudentServices::Application.initialize!

Gemfile:
...
gem 'sprockets'
gem 'sass-rails'
...
Gemfile.lock:
...
sprockets (4.0.0) 
sprockets-rails (3.2.1)
sass-rails (6.0.0)
...

Я перечислил sass-rails, потому что я видел сообщение о стеке, которое упоминало, что эта проблема была решена в sass-rails. rails 4 - команда rake выдает предупреждение об устаревании каждый раз, когда я запускаю команду rake db: migrate Эти гемы имеют самые последние версии, но проблема все еще существует.

Я играл с понижением звездочек вплоть до 3.7.0, что дает мне другую ошибку, но все еще включает звездочки:

ruby-2.6.4  git:(upstream ⚡ rails5) 5M
jdc44@dev:~/apps/sha_student_services$ bx rspec spec/controllers/manage/course_reports_controller_spec.rb 

/home/STATLER/jdc44/apps/sha_student_services/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.0/lib/sprockets/digest_utils.rb:47: warning: constant ::Fixnum is deprecated

/home/STATLER/jdc44/apps/sha_student_services/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.0/lib/sprockets/digest_utils.rb:51: warning: constant ::Bignum is deprecated

/home/STATLER/jdc44/apps/sha_student_services/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:110: warning: constant ::Fixnum is deprecated

/home/STATLER/jdc44/apps/sha_student_services/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.0/lib/sprockets/processor_utils.rb:111: warning: constant ::Bignum is deprecated

DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot. See https://github.com/thoughtbot/factory_bot/blob/v4.9.0/UPGRADE_FROM_FACTORY_GIRL.md for further instructions. (called from require at /usr/local/rvm/rubies/ruby-2.6.4/lib/ruby/site_ruby/2.6.0/bundler/runtime.rb:81)

DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.
https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors

 (called from block in <class:Railtie> at /home/STATLER/jdc44/apps/sha_student_services/vendor/bundle/ruby/2.6.0/gems/less-rails-2.6.0/lib/less/rails/railtie.rb:18)

An error occurred while loading ./spec/controllers/manage/course_reports_controller_spec.rb.
Failure/Error: require File.expand_path("../../config/environment", __FILE__)

NoMethodError:
  undefined method `register_preprocessor' for nil:NilClass
# ./vendor/bundle/ruby/2.6.0/gems/less-rails-2.6.0/lib/less/rails/railtie.rb:22:in `block in <class:Railtie>'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:30:in `instance_exec'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:30:in `run'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:55:in `block in run_initializers'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/initializable.rb:54:in `run_initializers'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/application.rb:352:in `initialize!'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
# ./vendor/bundle/ruby/2.6.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
# ./config/environment.rb:8:in `<top (required)>'
# ./spec/spec_helper.rb:8:in `require'
# ./spec/spec_helper.rb:8:in `<top (required)>'
# ./spec/controllers/manage/course_reports_controller_spec.rb:1:in `require'
# ./spec/controllers/manage/course_reports_controller_spec.rb:1:in `<top (required)>'
No examples found.


Finished in 0.00053 seconds (files took 3.83 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

В этом выводе есть URL для github, который говорит об этом устаревании. Я не был уверен, что, как применить это к моему приложению, чтобы решить это ИЛИ, если это даже проблема.

Я надеюсь, что кто-то может знать больше о том, что вызывает эту ошибку звездочек и как ее исправить .

Я с удовольствием отредактирую этот пост и добавлю больше контента, если необходимо.

Спасибо за просмотр.

j c

...