【问题标题】:In Python/Django, how do I configure default test settings?在 Python/Django 中,如何配置默认测试设置?
【发布时间】: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://stackoverflow.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

标签: python-3.x django unit-testing django-testing


【解决方案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")

...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2020-04-15
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多