Jest.js 笑话为什么不能正确退出?

njthzxwz  于 2023-06-20  发布在  Jest
关注(0)|答案(1)|浏览(139)

我正在测试一个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)

这不是一个严重的问题,但我想知道发生了什么。

qxgroojn

qxgroojn1#

Jest通过一个打开的套接字保持“活动”,您必须通过调用socket.close()显式关闭该套接字。一个很好的地方是在afterEach()afterAll()钩子中。

相关问题