ошибка whitelist_classes при запуске rspec с Ruby 2.6.5
Когда я обновился с ruby 2.5.7
к ruby 2.6.5
с rails 6.0.2
app, то все тесты 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/
.