首页 > 解决方案 > 在使用 Jest 运行 ng test (Angular) 时抛出的 ChildProcessWorker.initialize 超出了调用重试次数

问题描述

我正在将 Angular 与 Jest 一起使用。在运行 ng test(在我的情况下为 nx 测试,因为我使用的是 nrwl/nx)时,我在最后一个测试挂起时收到了一个组件的错误:

Call retries were exceeded at ChildProcessWorker.initialize

标签: angularunit-testingjestjs

解决方案


后来我发现我的 AfterViewInit() 挂钩中有一个 setTimeout,这导致了错误。

如果您的组件中有计时器,请执行以下操作以修复它:

  • 看看这个答案:测试一个包含 setTimeout() 的函数
  • 查看文档本文以了解如何使用 fakeAsync() 和 tick() 来测试异步代码
  • 如果这不起作用,请将您的测试用例包装在 setTimeout() 中,其毫秒数与组件中的 on 相同,这应该可以解决问题

推荐阅读