py.test不从数据库中提取数据

时间:2014-01-27 14:57:49

标签: python database django django-rest-framework pytest

下午好。

我正在使用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 个答案:

答案 0 :(得分:2)

像Daniel评论的那样,测试DB最初是空的。您可以使用以下两种方法之一添加要测试的任何数据:

  1. Django Fixtures - 您可以像使用初始数据一样使用JSON文件添加数据。
  2. 在运行时使用django dynamic fixture等库模拟数据。
  3. 这是你最好的赌注。