【问题标题】:Django settings are not loaded when running tests运行测试时未加载 Django 设置
【发布时间】:2017-10-31 03:24:08
【问题描述】:

我的应用程序的不同环境有不同的设置,例如本地、开发、阶段、生产。因此,当我在本地运行我的应用程序时,我将设置作为参数传递给manage.py,例如python3 manage.py runserver 0.0.0.0:8080 --settings=myapp.settings.local,实际上我的所有设置都已正确初始化,例如DEBUGTrue,因为它在我的设置文件中设置,而不是 False,因为它在 defaultsettings.py 中设置。

但是,当我尝试使用 python3 manage.py test --settings=myapp.settings.local 运行测试时,DEBUG 的值设置为 false,即它是从 defaultsettings.py 加载的。为什么会发生这种情况,我该如何解决?

【问题讨论】:

  • 检查是否this is of any help
  • DEBUG 是唯一受影响的设置吗?我很确定测试运行程序会自动将其设置为 True。
  • 我在发布我的问题后发现了相同的信息。

标签: python django settings


【解决方案1】:

确保在测试中导入如下设置: from django.conf import settings

【讨论】:

    【解决方案2】:

    事实证明,当您运行测试时,您的所有设置都与设置文件中的设置一样DEBUG 除外DEBUG 始终设置为 False 以使设置尽可能接近生产。

    我最终关注了这个帖子:Detect django testing mode

    import sys TESTING = sys.argv[1:2] == ['test']

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2018-06-01
      • 2017-11-08
      • 2019-07-19
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      相关资源
      最近更新 更多