py.test 不从数据库中提取数据
Posted
技术标签:
【中文标题】py.test 不从数据库中提取数据【英文标题】:py.test does not extract data from the database 【发布时间】:2014-02-18 11:29:31 【问题描述】:下午好。
我正在使用pytest 测试基于 django-rest-framework 的 api。据我在测试开始时所知道的,py.test 创建了一个带有前缀 test_ 的重复数据库。但是编写测试期间的模式注意到它没有从数据库接收数据。那是这个所谓的空的副本。 一个简单的例子:
@pytest.mark.django_db
def test_db():
qs = Category.objects.get(id=4)
assert qs['id'] = 4
它在下面返回此错误,但在数据库中,存在 id=4 的对象。
> assert qs['id'] == 4
E assert [] == 4
我是测试新手,可能会遗漏一些东西,请帮忙。
【问题讨论】:
它创建了一个空重复数据库。 【参考方案1】:就像丹尼尔评论的那样,测试数据库最初是空的。您可以使用以下两种方法之一添加您想要测试的任何数据:
-
Django Fixtures - 您可以像初始数据一样使用 JSON 文件添加数据。
在运行时使用库(例如 django dynamic fixture)模拟数据。
这些是您最好的选择。
【讨论】:
以上是关于py.test 不从数据库中提取数据的主要内容,如果未能解决你的问题,请参考以下文章