【问题标题】:Jest has detected open handle keeping Jest from exiting in Gitlab CiJest 检测到打开的句柄阻止 Jest 在 Gitlab Ci 中退出
【发布时间】:2019-06-30 17:04:58
【问题描述】:

我在共享的 gitlab 运行器中收到此错误。

但如果我在本地运行测试,我不会收到任何错误。

我该如何调试呢?错误消息对我没有任何意义。 您需要哪些信息来帮助我?抱歉,我无法上传整个项目。

开玩笑有什么问题?

【问题讨论】:

  • 你也可以考虑在这里问这个问题:superuser.com
  • 你能发布你的测试吗?
  • 所有测试或我应该发布什么?
  • @DanielDäschle 根据错误消息,很高兴看到activities.service.spec.ts
  • 好的,我没有在里面找到任何东西。我通过创建一个新分支并逐步实施所有新分支来使其工作。现在它正在工作。我想我在任何地方都弄坏了东西,但我没有找到。感谢您的帮助!

标签: javascript node.js jestjs gitlab-ci nestjs


【解决方案1】:

当您不关闭异步操作时,这可能会发生在单元测试中。例如,这可能是一个 CronJob:

const job = new CronJob('00 00 8,14,18 * * *', () => this.sendNotificationsPerUser());
job.start();

在这种情况下,您必须确保在测试结束之前调用了job.stop()。通过将这些异步库作为服务提供,然后在测试中模拟它们,可以轻松避免这种情况。


在 e2e 测试中,您必须确保在测试运行后关闭应用程序:

afterAll(async () => {
  if (app) {
    await app.close();
  }
});

【讨论】:

  • 我运行的是单元测试而不是 e2e 测试。所以我不应该关闭任何应用程序。
猜你喜欢
  • 2020-09-20
  • 2021-09-26
  • 2019-03-13
  • 2020-11-13
  • 2020-08-24
  • 2018-11-14
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多