关闭 jest 检测到的打开句柄

问题描述 投票:0回答:2

我正在为一个节点应用程序编写测试,该应用程序使用

bull
来处理后台作业。

测试似乎正在通过并按预期工作,但我看到以下错误消息

Jest has detected the following 
8 open handles potentially keeping 
Jest from exiting:

日志特别指向这一行和其他类似的语句。

 const csvExportsQueue = ['test', 'development'].includes(process.env.NODE_ENV) ? new Queue('exports') : new Queue('csv exports', 'redis://redis:6379/13');

我尝试将以下语句添加到我的测试中,但它仍然给出相同的错误


afterAll(async () => {
  await new Promise(resolve => setTimeout(() => resolve(), 10000)); // avoid jest open handle error
});

任何有关如何解决此问题的帮助都会很棒,谢谢。

javascript node.js jestjs
2个回答
1
投票
  1. 将“jest --detectOpenHandles”添加到package.json中的“test”以查看用于调试的openhandles

  2. 检查您的数据库连接(最有可能)并使用connection.end()关闭它们


0
投票
  1. 使用 why-is-node-runningwtfnode 查找这些句柄所在的位置。

  2. 使用以下参数运行

    jest

jest --forceExit --detectOpenHandles
© www.soinside.com 2019 - 2024. All rights reserved.