我在试用版测试套件中看到一个问题,在我超时之前一切正常。如果由于超时而导致测试失败,则将不会调用tearDown函数,从而使反应堆不干净,进而导致其余测试失败。我相信tearDown应该在超时后调用,有人知道为什么会发生这种情况吗?

最佳答案

不管测试中发生什么,都应该调用tearDown()是正确的。从the documentationtearDown()


  即使测试方法引发异常,也会调用此方法


但是,有一个陷阱。从同一文档中:


  仅在setUp()成功的情况下才调用此方法,而不管测试方法的结果如何。


因此,听起来您可能在setUp()中启动了反应堆,并且当它超时时,这阻止了tearDown()的运行-想法是您试图在setUp()中进行“设置”的任何内容均未成功设置向上,因此您不想尝试将其拆除。但是,除非您提供setUptearDown方法的代码以及任何相关测试的代码,否则很难确定地进行诊断。

关于python - 在扭曲的审判中超时后未调用tearDown吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39883058/

10-09 09:29