我有一个带有测试特定设置文件的单元测试,其中包括:
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = '/my/file/path'
这是行不通的,所以我在运行测试的过程中进入调试器检查设置:
ipdb> from django.conf import settings
ipdb> settings.EMAIL_BACKEND
'django.core.mail.backends.locmem.EmailBackend'
ipdb> settings.EMAIL_FILE_PATH
'/my/file/path'
文件路径设置有效,但后端设置无效!
有谁知道为什么?
我还能检查/配置什么?
这是错误报告的内容吗?
Django 1.11
最佳答案
这是记录在案的行为。 Django 用一个虚拟的后端替换了常规的电子邮件后端。然后,您可以使用 mail.outbox
访问测试中“已发送”的电子邮件。 . See the docs了解更多信息。
我相信您可以覆盖 EMAIL_BACKEND
用于单个测试或测试用例 override_settings
from django.test import TestCase, override_settings
class MyTest(TestCase):
@override_settings(EMAIL_BACKEND='django.core.mail.backends.filebased.EmailBackend')
def test_email(self):
...
关于Django 电子邮件后端设置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49394678/