我有一个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确实详细说明了所做的更改,但它没有给出任何提示,说明为什么会触发此警告或如何抑制它。尽管警告消息引用了Django 1.6,但它是在升级到Django 1.7 后才开始出现的
我检查过Django 1.7下运行的单元测试数量与Django 1.6.1下运行的相同。
对于那些感兴趣的人来说,有问题的应用程序是一个名为Kompasi的事件管理系统,可以在Github上找到。
发现一篇博客文章,揭示了明确指定
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
在CCD_ 2中将停止该警告的发生。
请参阅https://github.com/django/django/blob/1.7/django/core/checks/compatibility/django_1_6_0.py#L42对于它检查的给出此错误的列表。
看起来开发人员已经决定删除此警告:
https://code.djangoproject.com/ticket/23469
您可以使用SILENCED_system_CHECKS设置使单个系统检查警告静音。
关于您的另一个问题,即如何找到触发此警告的原因,我唯一能找到的地方是查看源代码。
如果测试一切正常,只需执行以下步骤之一(或全部)即可关闭警告:
-
如果您不再使用站点框架,请从您的设置中删除
SITE_ID
。 -
将
BASE_DIR
变量添加到您的设置中。 -
如果您不使用
MANAGERS
列表,请将其从您的设置中删除。 -
删除设置中的
XFrameOptionsMiddleware
中间件。(Django 1.6+中默认启用) -
如果您不需要自定义
TEMPLATE_LOADERS
或ADMINS
,请删除它们(您通常会这样做,所以除非您知道自己在做什么,否则不要这样做)。
这是当前启发式(Django 1.7.3)检查的两件事,以检测您的项目是否由Django<1.6.