【发布时间】:2020-11-08 12:12:05
【问题描述】:
我正在尝试在 NestJS 项目中设置 E2E 测试,但是,jest 输出如下所示:
Jest did not exit one second after the test run has completed
经过大量阅读,这是因为有一些资源尚未释放,经过一些调试后,它打开了由ioredis 创建的redis 的开放连接,bull 使用该连接,NestJS 使用它来执行任务队列处理。问题是我在测试代码中没有对连接的引用,那么我该如何关闭它呢?我正在像这样在afterAll jest 的钩子中拆除 Nest 应用程序:
afterAll(async () => {
await app.close();
});
但它什么也没做,连接仍然存在,并且开玩笑的错误消息仍然存在。我知道我可以将--forceExit 添加到jest 命令中,但这并不能解决任何问题,只是将问题隐藏在地毯下。
【问题讨论】:
-
解决了这个问题吗?我遇到了同样的问题,在使用
--detectOpenhandles后我意识到ioredisStandaloneConnector有一个tcp 连接打开
标签: testing redis jestjs nestjs ioredis