ошибка whitelist_classes при запуске rspec с Ruby 2.6.5

Когда я обновился с ruby 2.5.7 к ruby 2.6.5 с rails 6.0.2app, то все тесты rspec не пройдут. Пример ошибки:

An error occurred while loading ./spec/models/account_spec.rb.
Failure/Error: require File.expand_path('../../config/environment', __FILE__)

ArgumentError:
  unknown keywords: whitelist_classes, whitelist_symbols
# ./config/application.rb:7:in `<top (required)>'
# ./config/environment.rb:2:in `require_relative'
# ./config/environment.rb:2:in `<top (required)>'
# ./spec/rails_helper.rb:2:in `<top (required)>'
# ./spec/models/account_spec.rb:1:in `<top (required)>'
No examples found.

Строка 7 из application.rb является

Bundler.require(*Rails.groups)

Я подозреваю, что мне нужно обновить один или несколько драгоценных камней. Как это исправить?

1 ответ

Решение

Я предполагаю, что есть звонок Psych.safe_loadгде-то. Его интерфейс изменился между 2.5.7 и 2.6.5. 2.5.7 дублейwhitelist_classes а также whitelist_symbols в качестве аргументов ключевого слова, но 2.6.5 изменил их на permitted_classes а также permitted_symbols нарушение интерфейса.

Возможно, вам нужно обновить Bundler или другой драгоценный камень, который использует Psych. Вы можете попробовать поискать в источниках драгоценных камнейwhitelist_classes. Если вы используете RVM, это будет$HOME/.rvm/gems/ruby-2.6.5/gems/.

Другие вопросы по тегам