在我的settings.py
我有关于我的smtp电子邮件后端的配置:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'user@domain.com'
EMAIL_HOST_PASSWORD = 'user'
DEFAULT_FROM_EMAIL = 'contact@domain.com'
当我在开发期间运行服务器时(即python manage.py runserver
),电子邮件会正常发送。但是,当我运行验收测试(即python manage.py test functional_tests
)时,不会发送电子邮件。
阅读文档,我发现here Django认为在测试期间发送虚拟盒子的电子邮件是件好事,但文档并没有告诉我如何禁用此功能(我确实想要在运行测试时通过smtp发送电子邮件。)
有人知道在运行测试时我必须通过smtp发送电子邮件吗?
提前致谢。
答案 0 :(得分:4)
使用override_settings
装饰器。
from django.test import override_settings
class TestView(TestCase):
@override_settings(EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend')
def test_view(self):
...