我最近回到了一个测试文件,我得到了一个以前不会出现的错误。只有当我为测试导入一些函数时才会发生这种情况:
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“。
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来解决这个问题。
我不知道为什么测试运行者在导入文件时挂起。有什么想法吗?
发布于 2021-09-13 16:55:08
当你测试一个异步函数,而不是等待它完成时,就会发生这种情况。例如,下面的测试也会抛出相同的错误。
function getData() {
setTimeout(() => console.log("Hello"), 2000);
return 2;
}
test("should pass", () => {
expect(getData()).toEqual(2);
});您需要学习如何正确地测试异步函数。下面是jest文档中的一个简短指南。Async examples
https://stackoverflow.com/questions/69164606
复制相似问题