測試的時候python manage.py test -p "test_tasks.py" -v 3
,默認使用的EMAIL_BACKEND配置爲:'django.core.mail.backends.locmem.EmailBackend',此時,在settings.py裏的配置項EMAIL_BACKEND是不生效的;
若是想在測試的時候剩下,須要另外配置,好比:
#!/usr/bin/env python
# -- coding: utf-8 --python
from django.test import TestCase import unittest from plugin_security.tasks import send_email from django.conf import settings class TestEmail(TestCase): # @unittest.skip('skip') def test_send_email(self): # 這個配置必須加,由於django測試環境,修改了默認配置,致使郵件發送失敗 # 參考/Users/xxx/.virtualenvs/erebus_app/lib/python3.6/site-packages/django/test/utils.py裏的函數setup_test_environment settings.EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' res = send_email() self.assertEqual(res, True)
/Users/xxx/.virtualenvs/erebus_app/lib/python3.6/site-packages/django/conf/global_settings.pydjango
https://docs.djangoproject.com/en/2.2/topics/email/app