JEST 超时报错

 

报错:

Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error: Timeout - Async callback was
not invoked within the 5000ms timeout specified by jest.setTimeout.

at mapper (node_modules/_jest-jasmine2@24.9.0@jest-jasmine2/build/queueRunner.js:25:45)

 

描述:

运行测试组件是提示超时,即使skip的组件也超时,甚至运行成功的组件也超时;其他测试用例不超时,只有这个超时

 

解决过程:

  1. 看了提示的的API 没有头绪
  2. 怀疑这句导致了问题,但是其他地方也用了,没有类似超时报错: const erpText = await page.$$eval(css5, eles=>eles.map(ele=>ele.textContent.replace(/\s+/g,"")))
  3. 查看了配置文件,取消了 puppeteer.launch() 中的 timeout 参数无果
  4. 运行其他脚本,正常执行
  5. 对比两个脚本,发现 beforeAll() 模块异常,有区别,比正常的脚本多了2行代码;而执行时间,没有设定,默认 5000s, 增加到10000之后,问题解决

 

总结

原则:紧紧的扣住报错内容,从报错内容中找线索。

报错内容,提示超时,那肯定是哪里超时了;接下来就是超时的地方;脚本中,各个组件都设置了时间 (35000),一般足够用了,不会发生集体超时(排除了网络问题),所以只能是 

beforeAll() 这种地方了。

 

posted @ 2020-04-07 10:05  wsh1995  阅读(1509)  评论(0编辑  收藏  举报