39

我有一个 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 下运行的单元测试数量相同。

对于那些感兴趣的人,有问题的应用程序是一个名为Kompassi的事件管理系统,可以在Github上找到。

4

5 回答 5

45

找到了一篇博客文章,其中显示明确指定

TEST_RUNNER = 'django.test.runner.DiscoverRunner'

insettings.py将阻止此警告发生。

于 2014-09-16T17:19:12.120 回答
10

See https://github.com/django/django/blob/1.7/django/core/checks/compatibility/django_1_6_0.py#L42 for the list of things it checks that gives you this error.

于 2014-10-26T12:36:44.923 回答
9

看起来开发人员已决定删除此警告:

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

于 2014-10-19T16:57:28.277 回答
9

您可以使用SILENCED_SYSTEM_CHECKS设置使单个系统检查警告静音。

关于您关于如何找到触发此警告的原因的其他问题,我唯一能找到的地方是查看源代码

于 2014-09-16T16:06:31.750 回答
8

如果您的测试一切正常,您只需执行以下一项(或全部)步骤即可关闭警告:

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

  2. BASE_DIR变量添加到您的设置中。

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

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

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

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

于 2015-01-21T14:11:08.127 回答