我正在使用Django == 1.7.11,mysql,python 2.7。
在我的设置文件中,我将调试设置为True,我通过输入django shell确认了这一点,并且始终得到True
。
>>> from django.conf import settings
>>> settings.DEBUG
True
但在我的tests.py
文件中:
import unittest
from django.conf import settings
import settings as settingsfile
from django.test import LiveServerTestCase
class SeleniumTest(LiveServerTestCase):
def test_nothing(self):
print 'File DEBUG is: %s' % (settingsfile.DEBUG, )
print 'Django DEBUG is: %s' % (settings.DEBUG, )
if __name__ == '__main__':
unittest.main()
>>>> File DEBUG is: True
>>>> Django DEBUG is: False
在其他任何地方,DEBUG的价值可能已经改变,或者在我不知道的测试文件中导入设置的一些误用?
==更新==
此link提及LiveServerTestCase
强制DEBUG=False
以便模仿生产服务器,但我将文件更改为使用Django的正常TestCase
并最终获得相同的结果
import unittest
from django.conf import settings
from django.test import TestCase
import settings as settingsfile
class SeleniumTest(TestCase):
def test_nothing(self):
print 'File DEBUG is: %s' % (settingsfile.DEBUG, )
print 'Django DEBUG is: %s' % (settings.DEBUG, )
if __name__ == '__main__':
unittest.main()
>>>> File DEBUG is: True
>>>> Django DEBUG is: False
答案 0 :(得分:1)
Django的测试以DEBUG = False运行。
https://docs.djangoproject.com/en/dev/topics/testing/overview/#other-test-conditions