我有一个基于Django的Web应用程序,需要在尝试更改注册的电子邮件地址时向用户发送确认电子邮件。该功能已经实现,但旨在验证电子邮件内容的生菜测试失败。
为了验证操作,我的计划是使用文件后端(EMAIL_BACKEND ='django.core.mail.backends.filebased.EmailBackend'),然后在我的生菜步骤中验证文件的内容。
当“正常”运行时(例如,通过manage.py runserver),将按预期创建电子邮件文件。当通过生菜(manage.py harvest)运行时,网站似乎正在被正确驱动(我使用Selenium来驱动它)但没有生成电子邮件文件。
我错过了什么?我需要使用一些设置(例如在terrain.py文件中),以便在测试过程中使用文件后端吗?
答案 0 :(得分:4)
您可以按照django docs https://docs.djangoproject.com/en/dev/topics/testing/#email-services
中的说明使用django.core.mail.outbox
from django.core import mail
assert len(mail.outbox) == 1
assert mail.outbox[0].subject == 'Subject here'
Lettuce使用django.test.utils.setup_test_environment
覆盖电子邮件后端到locmem电子邮件后端。