首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pytest-django django_db_server夹具不工作

pytest-django django_db_server夹具不工作
EN

Stack Overflow用户
提问于 2022-06-05 06:38:44
回答 1查看 152关注 0票数 0

我想使用一个专门的测试数据库来测试我的Django应用程序。我使用的是pytestpytest-django。根据pytest-django说明,我在一个conftest.py文件中提供了自己的自定义django_db_setup夹具,如下所示:

代码语言:javascript
复制
from pathlib import Path

import pytest
from django.conf import settings


@pytest.fixture(scope='session')
def django_db_setup():
    base_dir = Path(__file__).parent
    path = base_dir / 'test_db.sqlite3'
    assert path.exists()
    assert path.is_file()

    settings.DATABASES['default'] = {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': path
    }

我可以确认在运行单元测试时正在执行这段代码,并且正在查找test_db.sqlite3数据库。但是,单元测试仍然是指我的开发数据库,而不是测试数据库。

如何让pytest-django引用我的测试数据库而不是我的开发数据库?

EN

回答 1

Stack Overflow用户

发布于 2022-06-11 13:23:10

就像几天前一样,我刚刚开始探索pytest和pytest.ini,但是通过在我的项目根文件夹中创建一个pytest.ini文件来使用一个测试数据库,如下所示:

代码语言:javascript
复制
[pytest]
DJANGO_SETTINGS_MODULE = myproject.test_settings

文件夹树如下所示:

代码语言:javascript
复制
myproject
  |  
  ------app_one
  |
  ------myproject
    |
    ------settings.py
    |
    --------test_settings.py

test_settings.py文件如下所示

代码语言:javascript
复制
from .settings import *


DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": "db_test.sqlite3",
    }
}

您可以在文档中查看更多这方面的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72505289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档