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