首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jest -“测试完成后无法记录。”在导入函数时遇到问题

Jest -“测试完成后无法记录。”在导入函数时遇到问题
EN

Stack Overflow用户
提问于 2021-09-13 14:39:04
回答 1查看 378关注 0票数 0

我最近回到了一个测试文件,我得到了一个以前不会出现的错误。只有当我为测试导入一些函数时才会发生这种情况:

代码语言:javascript
复制
const { _callXTimes, _itemFind, _chancePTFind, activityItemFind } = require('../../game/activities/activityItemFind');

There are no errors in the tests that use these functions... it's purely happening after I import this file. It also didn't used to cause this error. 

错误:测试完成后无法记录。你是不是忘了在测试中等待一些异步的东西?尝试记录"Executing (default):SELECT 1+1 AS result“。

代码语言:javascript
复制
  at CustomConsole.log (node_modules/@jest/console/build/CustomConsole.js:185:10)
  at Sequelize.log (node_modules/sequelize/lib/sequelize.js:1094:23)
  at Query.run (node_modules/sequelize/lib/dialects/postgres/query.js:74:22)
  at node_modules/sequelize/lib/sequelize.js:561:20
  at tryCatcher (node_modules/bluebird/js/release/util.js:16:23)
  at Promise._settlePromiseFromHandler (node_modules/bluebird/js/release/promise.js:547:31)
  at Promise._settlePromise (node_modules/bluebird/js/release/promise.js:604:18)
  at Promise._settlePromise0 (node_modules/bluebird/js/release/promise.js:649:10)
  at Promise._settlePromises (node_modules/bluebird/js/release/promise.js:729:18)
  at _drainQueueStep (node_modules/bluebird/js/release/async.js:93:12)

Jest在测试运行完成后一秒都没有退出。

这通常意味着有一些异步操作在您的测试中没有停止。考虑用--detectOpenHandles运行Jest来解决这个问题。

我不知道为什么测试运行者在导入文件时挂起。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-13 16:55:08

当你测试一个异步函数,而不是等待它完成时,就会发生这种情况。例如,下面的测试也会抛出相同的错误。

代码语言:javascript
复制
function getData() {
  setTimeout(() => console.log("Hello"), 2000);
  return 2;
}
test("should pass", () => {
  expect(getData()).toEqual(2);
});

您需要学习如何正确地测试异步函数。下面是jest文档中的一个简短指南。Async examples

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69164606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档