我想使用一个专门的测试数据库来测试我的Django应用程序。我使用的是pytest和pytest-django。根据pytest-django说明,我在一个conftest.py文件中提供了自己的自定义django_db_setup夹具,如下所示:
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引用我的测试数据库而不是我的开发数据库?
发布于 2022-06-11 13:23:10
就像几天前一样,我刚刚开始探索pytest和pytest.ini,但是通过在我的项目根文件夹中创建一个pytest.ini文件来使用一个测试数据库,如下所示:
[pytest]
DJANGO_SETTINGS_MODULE = myproject.test_settings文件夹树如下所示:
myproject
|
------app_one
|
------myproject
|
------settings.py
|
--------test_settings.pytest_settings.py文件如下所示
from .settings import *
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": "db_test.sqlite3",
}
}您可以在文档中查看更多这方面的内容。
https://stackoverflow.com/questions/72505289
复制相似问题