Babel.js 超过Jest调用重试次数

de90aj5v  于 2022-12-08  发布在  Babel
关注(0)|答案(5)|浏览(212)

我在以下测试中出错。我的节点版本为:v12.10.0。是否有setTimeout替代方法?

test('demo code', async () => {
        const cc = await projectSetup(project);
        const onNotification = jest.fn();
        cc.sendNotification();
        await waitForExpect(() => {
            expect(onNotification).toHaveBeenCalledTimes(2);
        });

    });

错误日志为

Call retries were exceeded

  at ChildProcessWorker.initialize (../../../node_modules/jest-worker/build/workers/ChildProcessWorker.js:230:21)
xzlaal3s

xzlaal3s1#

只需在导入后添加jest.useFakeTimers();

...
jest.useFakeTimers();

test('demo code', async () => {
        const cc = await projectSetup(project);
        const onNotification = jest.fn();
        cc.sendNotification();
        await waitForExpect(() => {
            expect(onNotification).toHaveBeenCalledTimes(2);
        });

    });

它在我的代码中工作

inn6fuwd

inn6fuwd2#

在我的例子中,实际的问题是与承诺处理。我得到了同样的问题,当我运行我的所有测试用例在一个去与笑话。

**解决方案:**尝试单独运行一个测试,然后查看出现得错误.

我得到了下面的错误后,运行一个有问题的测试分别在那里之前,我得到的Call retries were exceeded

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "TypeError: Cannot read property 'code' of undefined".] {
  code: 'ERR_UNHANDLED_REJECTION'
}

有了这个,我确信问题出在catch块上,当我把它添加到异步服务API函数中时,测试用例运行得非常好。也许你也可以尝试同样的方法,看看它是否适合你。
我正在使用以下配置:

**节点:**15.13.0
**国家/地区:**7.8.0
**笑话:**26.6.3

6l7fqoea

6l7fqoea3#

尝试使用最新的npm版本运行npm doctor。这是一个很好的工具,它帮助我立即诊断权限和所有权问题。
要点:
验证文件/文件夹权限和所有权

qeeaahzv

qeeaahzv4#

我能够成功运行测试,执行以下操作;
1.安装npm i -D jest-canvas-mock
更新jest.config.ts文件,使其具有:

export default {
...
testEnvironment: "jsdom",
setupFiles: ["jest-canvas-mock"],
}
wqsoz72f

wqsoz72f5#

将vue-jest版本更新为下列版本时遇到相同错误

  • @vue/vue 3-笑话:^27.0.0-字母4
  • @vue/cli-plugin-unit-jest:~5.0.0,
  • 节点:v17.9.0或v16.14.2

将其降级到节点版本v14.x.x后,错误消失
直觉是-最新的节点版本与依赖关系不兼容。

相关问题