我的项目中有2000多个单元测试/ pytest。他们中的许多人都询问API,但API可能会滞后。如果发生此错误,是否有一种方法可以期望APILagError
出现在每个测试中,并对任何测试都抛出SKIP / XFAIL?
当前:
结果:1次失败,2次确定=>测试失败
想要:
结果:2正常,1跳过/不合格=>测试通过
答案 0 :(得分:3)
我感到你很痛苦。我要做的是这样烦人的事情,我实际上并没有像您提出的那样回答您的问题,但是建议您改变方向。您应该选择以下选项之一:
轻巧的测试意味着您无法分辨破损的代码和缓慢的API调用之间的区别。因此,您的测试并不能帮助您捕获错误。那有什么意义呢?
如果要测试API之外的任何内容,则可以执行此操作。将您的逻辑与API的行为分离开来,以消除脆弱性并使代码更易于维护。
您也许还可以获取行为类似但速度更快的API,作为您的模拟进行测试。就像在本地检查API的代码并用一小组数据填充它一样。在您的测试中而不是在生产API中实现这一目标。这样一来,您就可以将其逻辑与其滞后性分开检查。