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 不从数据库中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate 关联类而不从存储库中提取

百度一带一路大数据竞赛baseline阅读记录

测试代码是不是从 py.test 会话中执行

如何在从另一个表中提取数据时创建具有约束的表

我如何提取合并的数据并将其放入不同的工作表中?

执行manage.py test报数据库错误