最近在编写Nodejs/Jest单元测试时呈现利用无奈失常退出,明明单元测试曾经执行结束,然而利用就是卡住,无奈失常退出,导致单元测试无奈间断执行。因为利用较为简单,很难以排查是什么起因导致的,通过剖析起因次要如下:

  1. 未解决async/Promise会导致该起因,解决办法是在jest中增加--detectOpenHandles参数,增加该参数后,在运行时jest会检测并给出提醒,依此解决就能够。
  2. 还有一种状况是利用中存在未清理的setInterval也会导致此状况,这种状况比拟荫蔽。解决办法也很简略,能够本人编写一个setSafeInterval函数,替换一个利用中所有应用setInterval的中央,记录一下定时器句柄,在退出前清理一下就能够了。