我正在测试一个UDP服务器,为此,我在测试中创建了一个UDP客户端。但是,尽管测试通过,Jest仍会退出,并显示以下消息:
Jest已检测到以下1个打开的句柄,可能会阻止Jest退出:
它指向我声明UDP套接字的那一行。
我尝试了以下代码:
const dgram = require('node:dgram');
describe("udp client", () => {
let testClient = dgram.createSocket('udp6');
test('test', ()=>{
let popo = false
expect(popo).toEqual(false);
})
});
但我还是遇到了同样的问题:
Jest has detected the following 1 open handle potentially keeping Jest from exiting:
● UDPWRAP
2 |
3 | describe("udp client", () => {
> 4 | let testClient = dgram.createSocket('udp6');
| ^
5 | test('test', ()=>{
6 | let popo = false
7 | expect(popo).toEqual(false);
at createSocket (test/test_udp.test.js:4:28)
at Object.describe (test/test_udp.test.js:3:1)
这不是一个严重的问题,但我想知道发生了什么。
1条答案
按热度按时间qxgroojn1#
Jest通过一个打开的套接字保持“活动”,您必须通过调用
socket.close()
显式关闭该套接字。一个很好的地方是在afterEach()
或afterAll()
钩子中。