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。

看起来开发人员已经决定删除​​这个警告:

https://code.djangoproject.com/ticket/23469

find一个博客文章 ,揭示明确指定

 TEST_RUNNER = 'django.test.runner.DiscoverRunner' 

settings.py将停止发生此警告。

如果您的testing一切正常,您可以通过执行以下一个(或全部)步骤来closures警告:

  1. 如果您不再使用网站框架,请从您的设置中删除SITE_ID

  2. BASE_DIRvariables添加到您的设置。

  3. 如果您不使用,请从您的设置中删除MANAGERS列表。

  4. 在设置中删除XFrameOptionsMiddleware中间件。 (无论如何,它在Django 1.6+中默认启用)

  5. 如果你不需要它们,你可以删除自定义的TEMPLATE_LOADERS或者ADMINS (通常你会这么做,所以不要这样做,除非你知道自己在做什么)。

这些是当前启发式(Django 1.7.3)检查的两件事,以检测您的项目是否由Django <1.6生成。

您可以使用SILENCED_SYSTEM_CHECKS设置来消除单个系统检查警告。

关于如何find引发这个警告的原因的另一个问题,我唯一可以find的地方是通过查看源代码 。