Django 电子邮件后端设置不起作用

Django Email Backend Setting Not Working

我有一个带有特定于测试的设置文件的单元测试,其中包括:

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'

文件路径设置成功,后台设置失败!

有人知道为什么吗?

我还能check/configure做什么?

这是错误报告的内容吗?

Django 1.11

按照此示例覆盖测试中的设置:https://docs.djangoproject.com/en/2.0/topics/testing/tools/#django.test.SimpleTestCase.settings

这是记录在案的行为。 Django 将常规电子邮件后端替换为虚拟后端。然后,您使用 mail.outbox 访问测试中的 "sent" 封电子邮件。 See the docs 获取更多信息。

我相信您可以使用 override_settings

覆盖单个测试或测试用例的 EMAIL_BACKEND
from django.test import TestCase, override_settings

class MyTest(TestCase):
    @override_settings(EMAIL_BACKEND='django.core.mail.backends.filebased.EmailBackend')
    def test_email(self):
        ...