【发布时间】:2019-03-27 03:10:40
【问题描述】:
我正在尝试使用 redis 和 jest 运行集成测试。
使用 --detectOpenHandles 运行时,它总是抛出“Jest 检测到以下 1 个打开的句柄可能使 Jest 无法退出:”错误。
它没有挂起,所以套接字正在关闭,但我该如何编写它才不会引发该警告?
我的代码
import redis from 'redis';
let red: redis.RedisClient;
beforeAll(() => {
red = redis.createClient();
});
afterAll((done) => {
red.quit(() => {
done();
});
});
test('redis', (done) => {
red.set('a', 'b', (err, data) => {
console.log(err);
red.get('a', (err, data) => {
console.log(data);
done();
});
});
});
警告
Jest has detected the following 1 open handle potentially keeping Jest from exiting:
● TCPWRAP
3 |
4 | beforeAll(() => {
> 5 | red = redis.createClient();
| ^
6 | });
7 |
8 | afterAll((done) => {
at RedisClient.Object.<anonymous>.RedisClient.create_stream (node_modules/redis/index.js:251:31)
at new RedisClient (node_modules/redis/index.js:159:10)
at Object.<anonymous>.exports.createClient (node_modules/redis/index.js:1089:12)
at Object.<anonymous>.beforeAll (src/sockets/redis.integration.test.ts:5:17)
使用常规玩笑运行编译后的代码会引发相同的警告。编译后的代码看起来几乎相同。
【问题讨论】:
标签: node.js jestjs node-redis