开玩笑的问题。FakeTimers:调用clearTimeout来清除本机计时器而不是此库创建的计时器

Ale*_*sha 12 node.js jestjs bitbucket-pipelines cicd

Node.js 从版本 14 更新到版本 16 后,我们在 bitbucket CI/CD 管道上进行了大量失败的测试。本地测试通过。

似乎是计时器中的问题,因为第一条错误消息显示:“FakeTimers:调用clearTimeout来清除本机计时器而不是此库创建的计时器。要自动清理本机计时器,请使用shouldClearNativeTimers“。之后,一系列测试都失败了。

在为笑话添加“--runInBand”参数后,它解决了问题,但这不是一个理想的方法。

将不胜感激任何帮助。

小智 6

我有同样的问题。

添加

jest.runOnlyPendingTimers()
jest.useRealTimers()
Run Code Online (Sandbox Code Playgroud)

在我的测试结束时, useFakeTimers() 修复了它。

参考: https: //testing-library.com/docs/using-fake-timers/