在pytest中请求超时失败时显示所有回溯

时间:2018-05-18 11:56:17

标签: python python-3.x

我刚刚为测试中的请求添加了超时。但是,我对所有请求进行了很长时间的追溯,这极大地影响了我从测试中获得反馈的速度。

假设这个例子:

import requests
import pytest


@pytest.fixture
def meeeh():
    try:
        return requests.get('https://google.com', timeout=0.000000000000000000000000000001)
    except requests.exceptions.Timeout as e:
        print(e)
        raise SystemExit(1)


def test_meh(meeeh):
    print(meeeh.text)

由于超时,请求显然会失败。但是,在提升SystemExit一个veeeeeeeeery long traceback(实际上,无法到达开头)时会以实际错误消息结束:

-------------------------------------------------------- Captured stdout setup -------------------------------------------------------- HTTPSConnectionPool(host='google.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x10bb0e358>, 'Connection to google.com timed out. (connect timeout=1e-30)'))

现在,如果不是一次测试,我根据该灯具进行了20次测试,所有这些测试都失败了,因为这种长回溯,我能够只读取最新测试的输出。

那么......我怎样才能删除追溯?

我读过的很多问题都说它是因为我没有捕获异常,但我是。其他人说设置sys.trackbacklimit=None但它也没有工作。

0 个答案:

没有答案