[英]Rails 4 sending emails in the "Test" environment
每次我運行測試時,實際上都會發送電子郵件。 我的config/environments/test.rb
有這個配置
config.action_mailer.delivery_method = :test
所以我認為每當我運行測試時,它們不應該真正發送,但是當我運行命令時
RAILS_ENV="test" rake test
電子郵件以任何一種方式發送。 有那么一刻,我想可能是我沒有使用正確的環境。 但后來我完全刪除了db/test.sqlite3
並在我再次運行測試后立即刪除。 文件又恢復了,證明我其實是在test
環境下運行的。
到底是怎么回事? 為什么我的測試會發送真實郵件? 這與我在我的應用程序上使用deliver_now
有什么關系嗎?
在config/environment.rb
有一行ActionMailer::Base.delivery_method = :smtp
會覆蓋config/environments/test.rb
ActionMailer::Base.delivery_method = :test
。
從config/environment.rb
刪除該行ActionMailer::Base.delivery_method = :smtp'
並將其放在config/environments/production.rb
。 這允許您將ActionMailer::Base.delivery_method = :test
放在config/environments/test.rb
,並將您想要的版本放在config/environments/development.rb
。
這是針對 Rails 6 的,但我認為它可能會幫助遇到此問題的人。
確保將以下內容放入您的 config/environments/test.rb 文件中:
config.action_mailer.delivery_method = :test
config.active_job.queue_adapter = :test
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.