当我使用 rails 6.0.2
应用程序从 ruby 2.5.7
升级到 ruby 2.6.5
时,所有 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.
application.rb
的第 7 行是
Bundler.require(*Rails.groups)
我怀疑我需要升级一颗或多颗 gem 。我该如何解决这个问题?
最佳答案
我的猜测是在某个地方调用了 Psych.safe_load
。其界面在 2.5.7 之间变化和 2.6.5 。 2.5.7 将 whitelist_classes
和 whitelist_symbols
作为关键字参数,但 2.6.5 已将它们更改为 permissed_classes
和 permissed_symbols
界面。
您可能需要升级 Bundler
或其他使用 Psych
的 gem。您可以尝试在 gem 源中搜索 whitelist_classes
。如果您使用 RVM,则为 $HOME/.rvm/gems/ruby-2.6.5/gems/
。
关于ruby-on-rails - 使用 ruby 2.6.5 运行 rspec 时出现whitelist_classes 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524017/