我刚刚为测试中的请求添加了超时。但是,我对所有请求进行了很长时间的追溯,这极大地影响了我从测试中获得反馈的速度。
假设这个例子:
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
但它也没有工作。