Django 1.7 – 如何取消“(1_6.W001)某些项目testing可能无法按预期执行。
我有一个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详细说明了所做的更改,但没有提供任何有关此警告触发原因的提示或如何禁止它。 尽pipe警告消息引用了Django 1.6,但它只是在升级到Django 1.7后才开始显示
我已经检查过,在Django 1.7下正在运行相同数量的unit testing,就像在Django 1.6.1下运行一样。
对于那些感兴趣的,有问题的应用程序是一个名为Kompassi的事件pipe理系统,可以在Github上find。
看起来开发人员已经决定删除这个警告:
find一个博客文章 ,揭示明确指定
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
在settings.py
将停止发生此警告。
如果您的testing一切正常,您可以通过执行以下一个(或全部)步骤来closures警告:
-
如果您不再使用网站框架,请从您的设置中删除
SITE_ID
。 -
将
BASE_DIR
variables添加到您的设置。 -
如果您不使用,请从您的设置中删除
MANAGERS
列表。 -
在设置中删除
XFrameOptionsMiddleware
中间件。 (无论如何,它在Django 1.6+中默认启用) -
如果你不需要它们,你可以删除自定义的
TEMPLATE_LOADERS
或者ADMINS
(通常你会这么做,所以不要这样做,除非你知道自己在做什么)。
这些是当前启发式(Django 1.7.3)检查的两件事,以检测您的项目是否由Django <1.6生成。
您可以使用SILENCED_SYSTEM_CHECKS设置来消除单个系统检查警告。
关于如何find引发这个警告的原因的另一个问题,我唯一可以find的地方是通过查看源代码 。