我使用Django 1.9
和django.test
进行单元测试。
这是我测试signals
的代码:
@receiver(post_save, sender=EmailNotification, dispatch_uid="spacegraphy")
def post_save_notification(sender, instance, created, **kwargs):
if created:
if settings.DEBUG:
print("post_save: created!!!")
else:
instance.send_notification()
当我在本地运行此应用程序时,它以开发模式运行,显示print(settings.DEBUG)
为True
。 (我在shell_plus
django-extension
中进行了检查
但是,当我测试单元测试时,print(settings.DEBUG)
会显示False
。
我不知道为什么会这样。请问有什么想法吗?
答案 0 :(得分:1)
来自https://docs.djangoproject.com/en/1.10/topics/testing/overview/#other-test-conditions:
无论配置文件中DEBUG设置的值如何,所有Django测试都以DEBUG = False运行。这是为了确保您观察到的代码输出与生产设置中的输出相匹配。
我建议您以不同的方式编写测试。目的是测试代码在生产中运行的功能,因此不需要检查DEBUG
的值。