问题描述
我使用 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 响应)?
解决方法
由于 pytest
使用 assert
语句进行测试,我们可以利用 assert
语句的扩展形式,如 here 所示。
在您的情况下,它看起来像:
@pytest.mark.django_db
def test_foo(client):
url = reverse('foo')
response = client.get(url)
assert response.status_code == 200,response.exception_reason
在您的案例中检索 Exception
的语法可能略有不同,但希望您了解需要更改的内容。