Django 1.7 - 如何抑制“(1_6.W001)某些项目单元测试可能无法按预期执行。”?

时间:2014-09-16 14:20:06

标签: python django python-2.7 python-2.x django-1.7

我有一个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下运行一样。

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

5 个答案:

答案 0 :(得分:45)

找到显示明确指定

blog post
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
<{1}}中的

将阻止此警告发生。

答案 1 :(得分:10)

答案 2 :(得分:9)

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

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

答案 3 :(得分:9)

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

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

答案 4 :(得分:8)

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

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

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

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

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

  5. 如果您不需要,请移除自定义TEMPLATE_LOADERSADMINS(您通常会这样做,所以不要这样做除非您知道你在做什么。

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