如何使用带数据的数据库在django中运行测试?

时间:2017-03-02 15:16:07

标签: python django postgresql pytest pytest-django

我想使用postgres localhost数据库中的数据(已经加载的数据)测试我的视图。我使用pyx和pytest-django。

我的问题: 如何设置/连接到本地数据库以获取所有数据模型架构和数据本身?或者也许最好使用factory_boy?或者从.sql脚本加载整个数据(如果是,如何)?

我的测试示例:

def test_foo_view(custom_client_login):
    response = custom_client_login.get('/foo/bar/123/')

    assert response.status_code == 200
    assert 'Transaction no. 123' in response.content

但是不是获取状态代码200而是获得404,这表明测试数据库中没有数据。但是当我午餐runserver并转到该视图('localhost:8000/foo/bar/123/')时,我将获得状态200和html网页以及一些数据。

请帮忙!

我正在使用:

  • 的Django == 1.7.11
  • pytest == 3.0.6
  • pytest-django的== 3.1.2
  • 的tox == 2.6.0

1 个答案:

答案 0 :(得分:3)

刚刚找到了办法!我认为它更简单!无需编写任何自定义TestRunners等。

答案在第5章的pytest-django docs中 - >示例 - >使用只读数据库。

查看其他在这种情况下非常方便的例子。

谢谢!