安装Ruby 2.7.0后,运行规范已成为诸如此类警告的噩梦:
/Users/user/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/capybara-3.30.0/lib/capybara/node/matchers.rb:835: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/Users/user/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/capybara-3.30.0/lib/capybara/node/matchers.rb:861: warning: The called method `_set_query_session_options' is defined here
由于这些警告从宝石中弹出,因此,它们确实没有帮助并使RSpec输出完全混乱。
我已经尝试将这一行添加到spec_helper.rb
config.warnings = false
这行到config / environments / test.rb
config.active_support.deprecation = :log
但是,警告仍然在数百人中弹出。我有什么办法可以摆脱它们?
正在运行Ruby on Rails 6.0.2.1和Ruby 2.7.0
NOTE有人建议在Suppress Ruby warnings when running specs中已经存在此问题的答案,这看起来像是一个类似的问题,但提供的解决方案无效。我看到了所有警告。
这些警告/弃用直接来自ruby 2.7,您无法通过rails或rspec配置使它们静音。
Ruby 2.7试图警告您将在ruby 3.0中出现的向后不兼容性。参见release notes。弃用的主要来源是位置参数和关键字参数的分离部分。
Rails和其他库以及gems尚未为此更改做好准备,因此ruby向您显示大量警告。
我将等待升级,直到将来gem解决这些警告,但您也可以根据以下文章https://prathamesh.tech/2019/12/26/managing-warnings-emitted-by-ruby-2-7/取消显示这些警告>
RUBYOPT='-W:no-deprecated -W:no-experimental' rails c