我有一个Django应用程序,其部分最初是用Django 1.2编写的,并且该应用程序已经升级到1.7。升级到1.7后,我从python manage.py check
收到以下警告:
System check identified some issues:
WARNINGS:
?: (1_6.W001) Some project unittests may not execute as expected.
HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information.
URL mentioned in the error message确实详细说明了所做的更改,但它没有提供任何关于为什么触发此警告或如何禁止它的提示。即使警告消息引用了Django 1.6,它也只在升级到Django 1.7后才开始出现
我已经检查过在Django 1.7下运行相同数量的单元测试,就像在Django 1.6.1下运行一样。
答案 0 :(得分:45)
答案 1 :(得分:10)
请参阅https://github.com/django/django/blob/1.7/django/core/checks/compatibility/django_1_6_0.py#L42以查看导致此错误的事项列表。
答案 2 :(得分:9)
您可以使用SILENCED_SYSTEM_CHECKS设置静音各个系统检查警告。
关于如何查找触发此警告的原因的其他问题,我唯一能找到的地方是查看source code。
答案 3 :(得分:9)
看起来开发人员决定删除此警告:
答案 4 :(得分:8)
如果您的测试一切正常,您可以通过执行以下一个(或全部)步骤来关闭警告:
如果您不再使用网站框架,请从您的设置中移除SITE_ID
。
将BASE_DIR
变量添加到您的设置中。
如果您不使用,请从您的设置中删除MANAGERS
列表。
删除设置中的XFrameOptionsMiddleware
中间件。 (无论如何,它在Django 1.6+中默认启用)
如果您不需要,请移除自定义TEMPLATE_LOADERS
或ADMINS
(您通常会这样做,所以不要这样做除非您知道你在做什么。
这是当前启发式(Django 1.7.3)检查的两件事,以便检测您的项目是否由Django< 1.6生成。