簡體   English   中英

使用Express,Socket.io和Node-Telegram-Bot-Api結束Mocha測試

[英]Ending Mocha Test Using Express, Socket.io and Node-Telegram-Bot-Api

使用Express,Socket.io和Node-Telegram-Bot-Api結束Mocha測試

我正在用Mocha為使用express,socket.io和node-telegram-bot-api的腳本編寫測試。

運行所有測試后,mocha測試不會關閉,因此我認為這三個中的一個仍在后台執行其工作,這阻止了腳本完成。

我添加了一個函數,該函數手動關閉Express(並結合)socket.io(server.close()),但腳本仍在運行。

我的想法是node-telegram-bot-api仍在偵聽消息。 有沒有一種方法可以終止連接,類似於express提供的close()函數?


更新資料

此后,我發現了有關bot.stopPolling()函數的信息,但這似乎對我不起作用。

當我用wtfnode運行摩卡測試時,我得到以下輸出:

[WTF Node?] open handles:
- File descriptors: (note: stdio always exists)
  - fd 1 (tty) (stdio)
  - fd 2 (tty) (stdio)
- Child processes
  - PID 29442
    - Entry point: /home/user/projectNAME/node_modules/mocha/bin/mocha:72

真的不確定該怎么做。

我從錯誤的角度來解決這個問題。

與其在每個it(() => {}塊中實例化我正在測試的類,而不是將所有東西都放在before(() => {})掛鈎中作為類變量,更有意義。

我通過在after(() => {})掛鈎中執行process.exit(1)解決了缺少電報功能的問題。

最后一部分可能不是最佳實踐,但它解決了我的問題。

我遇到了同樣的問題,當所有測試通過后,mocha測試沒有關閉。 根據這個:

https://boneskull.com/mocha-v4-nears-release/#mochawontforceexit

為了避免誤報並鼓勵更好的測試實踐,Mocha在認為應該運行時不再通過process.exit()自動殺死自己。 因此,我安裝了wtfnode軟件包。 我以前的輸出就像您的一樣。 我通過在package.json路徑的“ mocha”中添加“ _”來解決此問題,如下所示:

"test": "npm run compile && NODE_ENV=TEST wtfnode node_modules/.bin/_mocha ./dist/**/*.spec.js"

現在我的輸出如下所示:

    Server stopped.
^C[WTF Node?] open handles:
- File descriptors: (note: stdio always exists)
  - fd 1 (tty) (stdio)
  - fd 2 (tty) (stdio)
- Sockets:
  - 127.0.0.1:43960 -> 127.0.0.1:27017
  - 127.0.0.1:43964 -> 127.0.0.1:27017
  - 127.0.0.1:43966 -> 127.0.0.1:27017
  - 127.0.0.1:43968 -> 127.0.0.1:27017
  - 127.0.0.1:43970 -> 127.0.0.1:27017
- Timers:
  - (5000 ~ 5 s) (anonymous) @ /home/slava/eyescanlab/backend/node_modules/mongodb-core/lib/topologies/server.js:469
- Intervals:
  - (60000 ~ 60 s) (anonymous) @ /home/slava/eyescanlab/backend/dist/backend/src/services/internetConnection.service.js:26

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM