【问题标题】:pytest django load database data from yaml filepytest django 从 yaml 文件加载数据库数据
【发布时间】:2021-09-02 20:10:25
【问题描述】:

我已使用 dumpdata django 命令将开发环境中的数据转储到 yaml 文件中。

我使用的是pytest框架,需要实现以下场景:

  • 在 pytest 会话开始期间 -> 即当我从命令行运行 pytest 时,应将 yaml 文件中的数据加载到我的测试数据库中

是否有任何插件或钩子可以用来实现上述目标?

我正在使用 python 3.8、pytest 6.2.4、pytest-django 4.40、Django 3.0.5

【问题讨论】:

  • 为什么要在运行测试之前加载这些数据?作为测试的一部分,创建要测试的数据通常是个好主意
  • 我在开发环境中有一些数据,我已经手动测试了我的应用程序。我想为此编写测试。由于我在 yaml 中有一些坚如磐石的数据,因此创建数据将非常耗时且容易出错。
  • @IainShelvington 是的,你能告诉我如何在 pytest 中实现同样的目标

标签: python django pytest pytest-django


【解决方案1】:

如果您使用的是pytest-django 包,那么您可以通过在conftest.py 中提供django_db_setup fixture pytest 固定装置来为您的测试加载Django 数据固定装置

import pytest

from django.core.management import call_command

@pytest.fixture(scope='session')
def django_db_setup(django_db_setup, django_db_blocker):
    with django_db_blocker.unblock():
        call_command('loaddata', 'my_fixture.yaml')

【讨论】:

    猜你喜欢
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多