Тестирование доставки электронной почты с перерывами в 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. Наиболее полезен для модульного и функционального тестирования.

Другие вопросы по тегам