I upgraded to Rails 7 and Ruby 3.1. While trying to run tests with
rspec I got the error below. How can I fix it?
An error occurred while loading rails_helper. Failure/Error: require File.expand_path('../config/environment', __dir__) LoadError: cannot load such file -- net/smtp # .../gems/mail-2.7.1/lib/mail.rb:9:in `<module:Mail>' # .../gems/mail-2.7.1/lib/mail.rb:3:in `<main>' # .../bundler/gems/rails-6a0f6c4d70b1/actionmailbox/lib/action_mailbox/mail_ext.rb:3:in `<main>' # .../bundler/gems/rails-6a0f6c4d70b1/actionmailbox/lib/action_mailbox.rb:3:in `<main>' # .../bundler/gems/rails-6a0f6c4d70b1/actionmailbox/lib/action_mailbox/engine.rb:9:in `<main>' # ./config/application.rb:11:in `<top (required)>' # ./config/environment.rb:2:in `require_relative' # ./config/environment.rb:2:in `<top (required)>' # ./spec/rails_helper.rb:4:in `require' # ./spec/rails_helper.rb:4:in `<top (required)>'
(bootsnap and zeitwerk is excluded from backtrace)
gem 'net-smtp', require: false to your Gemfile and run
Similarly I assume you may have problems with
net-pop and so have to add them until a new
gem 'net-smtp', require: false gem 'net-imap', require: false gem 'net-pop', require: false
UPD: The mail gem version 2.8.0 was released on December 3rd, 2022 which includes the fix. Just upgrade to >= 2.8.0.
On January 6th, 2022 Rails 7.0.1 was released:
The focus of this release is bring support to Ruby 3.1
Amongh other Ruby 3.1-related issues it brought a fix for this problem. So upgrade to Rails >= 7.0.1.
Related pull requests and issues: