首页 > 解决方案 > 如何使用 pytest 访问 django 数据库

问题描述

我想使用 pytest 和 django 来测试 api 查询。有没有办法在 pytest 中做到这一点而无需创建测试数据库?Pytest 不断抛出不允许数据库访问的错误。我最终不得不在我的 pytest 文件的顶部执行此操作:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE","MyProject.settings")
import django
django.setup()

我尝试使用 pytest-django 库,但它没有用于访问我可以使用的数据库的标记。

标签: djangopytest

解决方案


它总是有助于 rtfd: https ://pytest-django.readthedocs.io/en/latest/database.html

pytest-django 采用保守的方法来启用数据库访问。默认情况下,如果他们尝试访问数据库,您的测试将失败。只有当您明确请求数据库访问时,才会允许这样做。这鼓励您将需要数据库的测试保持在最低限度,这使得哪些代码使用数据库非常清楚。


推荐阅读