Тестирование доставки электронной почты с перерывами в email_spec на Rails 3.0.11 -> 3.1.3 - PullRequest
1 голос
/ 22 января 2012

Я в процессе миграции приложения 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 Ответ

0 голосов
/ 28 января 2012

Попробуйте установить:

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

...