首页 > 解决方案 > 异步测试在节点 10 停止工作,在节点 12 工作。如何诊断?

问题描述

如果是这样的话,多头和空头:

  1. describe( async function(){const awaitSomething = something (...); expect(awaitSomething).to.equal('somethingAwaited')}在节点 10.15.3 中运行的带有一些异步/等待测试(例如或类似)的大型测试套件
  2. 引入一个同事组件库(它本身与节点 10.15 3 中的测试一起运行)
  3. 除非我们升级到节点 12.x,否则我们的大型测试套件会失败

具体来说,即使我们指定.only运行不相关的测试套件,这也会导致测试失败。一旦我们注释掉组件函数的导入,它在哪里集成和在哪里休息,所有其他测试失败都会停止。

我们很可能升级到节点 12.x,但我仍然想了解哪里出了问题。

唯一的两个线索是新组件 pulls whatwg-fetch,并且在节点 10.15.3 中我们收到一个错误(无论是否导入组件)说

ExperimentalWarning: fs.promises is experimental.

这来自 jsdom 内部。

由于我无法从代码库中粘贴代码,因此无法在此处显示 MVP,但是有没有办法诊断这个问题?我试过使用DEBUG='*',但我无法从中得到任何有意义的东西。我的主要猜测是 polyfill 覆盖了某些东西,但我不知道是什么。

标签: node.jsmocha.jschaipolyfillsjsdom

解决方案


推荐阅读