Rails 4在“测试”环境中发送电子邮件

问题描述 投票:3回答:2

每次我运行测试时,实际上都会发送电子邮件。我的config/environments/test.rb有这种配置

config.action_mailer.delivery_method = :test

所以我认为每当我运行测试时,它们都不应该被真正发送,而是当我运行命令时

RAILS_ENV="test" rake test

电子邮件以任何方式发送。有那么一刻,我想也许我没有使用合适的环境。但后来我完全删除db/test.sqlite3后立即再次运行测试。该文件再次恢复,这证明我实际上是在test环境中运行。

到底是怎么回事?为什么我的测试发送真实邮件?它与我在我的应用程序上使用deliver_now的事实有什么关系吗?

ruby-on-rails email ruby-on-rails-4 testing
2个回答
2
投票

你应该至少能够通过放置来禁用它们

config.action_mailer.perform_deliveries = false

在您的环境/ test.rb中,Brent Sullivanhis answer中建议。


1
投票

ActionMailer::Base.delivery_method = :smtp中的config/environment.rb线覆盖了ActionMailer::Base.delivery_method = :test中的config/environments/test.rb

ActionMailer::Base.delivery_method = :smtp'删除该行config/environment.rb并将其放入config/environments/production.rb。这允许你把ActionMailer::Base.delivery_method = :test放在config/environments/test.rb和你想要的版本config/environments/development.rb

© www.soinside.com 2019 - 2024. All rights reserved.