当我运行测试时,django 如何重新定义 DJANGO_SETTINGS_MODULE?

我的项目根目录中有一个“设置”目录。它包含具有设置的不同文件:


./settings/tests.py

./settings/testing.py

./settings/production.py

我想使用tests.py进行单元测试(我使用testing.py进行预生产应用程序运行),所以。在manage.py文件中我写了这些代码:


...

if 'test' in sys.argv:

  os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings.tests')

else:

  os.environ.setdefault('DJANGO_SETTINGS_MODULE',

                        'settings.production')

...

当我运行时python manage.py test <app_name>,所有测试都运行良好,并且使用了 settings/tests.py 模块。但是当我运行时python manage.py test,Django 会加载 settigns/testing.py 文件。


当我重命名 testing.py 文件时,一切都按我的预期工作:tests.py 模块已加载。


在 Django 中为测试定位测试模块有什么逻辑吗?我怎样才能禁用它?


人到中年有点甜
浏览 282回答 2
2回答

慕姐8265434

问题是模块是通过“test*”模式匹配加载的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python