首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Express、Socket.io和Node-Telegram-Bot-Api结束Mocha测试

使用Express、Socket.io和Node-Telegram-Bot-Api结束Mocha测试
EN

Stack Overflow用户
提问于 2018-06-26 21:51:28
回答 2查看 424关注 0票数 1

使用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运行mocha测试时,我得到以下输出:

代码语言:javascript
复制
[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

我真的不知道该怎么理解这些信息。

EN

回答 2

Stack Overflow用户

发布于 2018-06-27 05:37:50

我从错误的角度来处理这个问题。

与其实例化我在每个it(() => {}块中测试的类,不如将所有这些东西放在before(() => {})钩子中作为一个类变量。

我通过在after(() => {})钩子中执行process.exit(1)解决了缺少电报函数的问题。

最后一部分可能不是最佳实践,但它解决了我的问题。

票数 0
EN

Stack Overflow用户

发布于 2018-11-19 15:53:55

我也有同样的问题,当mocha测试在所有测试通过后没有关闭。根据这一点:

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

为了避免误报并鼓励更好的测试实践,Mocha将不再在它认为应该完成运行时通过process.exit()自动终止自己。所以,我安装了wtfnode包。我之前的输出和你的一样。我解决这个问题的方法是在package.json path的"mocha“中添加"_”,如下所示:

代码语言:javascript
复制
"test": "npm run compile && NODE_ENV=TEST wtfnode node_modules/.bin/_mocha ./dist/**/*.spec.js"

现在我的输出如下所示:

代码语言:javascript
复制
    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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51044567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档