在 Python/Django 中,如何配置默认测试设置?
Posted
技术标签:
【中文标题】在 Python/Django 中,如何配置默认测试设置?【英文标题】:In Python/Django, how do I configure default test settings? 【发布时间】:2020-11-24 02:12:46 【问题描述】:我正在使用 Python 3.8 和 Django 3。我有以下目录结构...
- manage.py
+ tests
- __init__.py
- factories.py
- test_models.py
- test_serializers.py
+ directory
- test_settings.py
我使用
启动我的测试python manage.py test --settings=directory.test_settings
以下是我的“test_settings.py”文件的内容...
from .settings import *
class DisableMigrations(object):
# ref: https://***.com/a/28560805/12578202
def __contains__(self, item):
return True
def __getitem__(self, item):
return None
如何将上面的测试设置文件配置为默认值,以便我可以通过执行简单的操作来运行测试
python manage.py test
【问题讨论】:
您可以创建自己的测试命令,扩展默认测试命令类,并使用测试设置。 谢谢,但你知道有没有更传统的方法?有点像“pytest”有一个“conftest.py”? 不,我不知道,另一种方法是修改你的manage.py
,然后当命令参数为test
时切换到你的test_settings.py
【参考方案1】:
并不是说我知道传统的方法,但这里有一个解决方法,方法是编辑您的 manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
if len(sys.argv) > 1 and sys.argv[1] == 'test':
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "directory.test_settings")
else:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings")
...
【讨论】:
以上是关于在 Python/Django 中,如何配置默认测试设置?的主要内容,如果未能解决你的问题,请参考以下文章
龙测技术资料分享Python+Django+Ansible Playbook自动化运维项目实战