Тестирование доставки электронной почты с перерывами в email_spec на Rails 3.0.11 -> 3.1.3
Я в процессе миграции приложения rails 3.0.11 на 3.1.3. И каким-то образом это нарушает проверку email_spec на количество писем, полученных при использовании настройки cucumber + selenium.
config.action_mailer.delivery_method = :test
, также попробовал это с :cache
а также :file
Способы доставки. Не важно что, ActionMailer::Base.deliveries
пусто, даже если согласно журналам, письма отправляются. И если вернуться к версии 3.0.11, все снова заработает.
Редактировать: для определенных версий, вот мой Gemfile.lock (обратите внимание, что spork не используется для функций огурца).
Подсказки, кто-нибудь?
1 ответ
Попробуйте установить:
ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.deliveries.clear
в вашем features/support/env.rb
или, проще говоря, это где-то ошибка, здесь мы можем увидеть людей с похожими проблемами: https://github.com/bmabey/email-spec/issues?sort=created&direction=desc&state=open&page=1
Следите за тем, чтобы по какой-то причине не отправлять реальные письма (ошибки и т. Д.)
delivery_method
- Определяет способ доставки. Возможные значения:smtp (по умолчанию),:sendmail,:test и:file. Или вы можете предоставить пользовательский метод доставки объекта, например. MyOwnDeliveryMethodClass.new. См. Документацию Mail gem об интерфейсе, который необходимо реализовать для настраиваемого агента доставки.
perform_deliveries
- Определяет, действительно ли электронные письма отправляются из Action Mailer при вызове.deliver для почтового сообщения или метода Action Mailer. Это включено по умолчанию, но может быть отключено для помощи в функциональном тестировании.
deliveries
- Содержит массив всех писем, отправленных через Action Mailer с помощью delivery_method:test. Наиболее полезен для модульного и функционального тестирования.