首页 > 解决方案 > Pytest-Django:不幸的是,未捕获的异常被隐藏了

问题描述

我使用 pytest-django,不幸的是,未捕获的异常被隐藏了

@pytest.mark.django_db
def test_foo(client):
    url = reverse('foo')
    response = client.get(url)
    assert response.status_code == 200

我得到:

E       assert 500 == 200
Assertion failed

如何配置 pytest 以显示真正的异常(而不是 http 500 响应)?

标签: pytestpytest-django

解决方案


由于pytest使用assert语句进行测试,我们可以利用语句的扩展形式,如下assert所示

在您的情况下,它看起来像:

@pytest.mark.django_db
def test_foo(client):
    url = reverse('foo')
    response = client.get(url)
    assert response.status_code == 200, response.exception_reason

在您的情况下检索 的语法Exception可能略有不同,但希望您了解需要更改的内容。


推荐阅读