【问题标题】:Mocha Server CleanupMocha 服务器清理
【发布时间】:2016-09-18 21:13:50
【问题描述】:

所以我有一些 Mocha 测试,它们基于我的 Express 服务器运行一些测试。

我在 server.js 文件中运行以下代码来处理在服务器关闭时完成的一些清理工作(优雅地关闭服务器、记录一些信息、停止本地数据库(如果存在)等)。

process.on ('SIGINT', function () {
    gracefulShutdown();
}); 

这在运行nodemon server.js 之类的命令时非常有效。当我点击 command-c 时,它会处理清理工作,一切都很顺利。

问题是我希望它在 Mocha 测试完成后运行。目前在运行mocha 时,它会运行我的测试目录中的所有测试。我曾考虑在我上一个 Mocha 测试文件中像 after 函数一样运行该函数。问题是我有多个 Mocha 运行的测试文件,如果我决定只运行一个测试文件,那么该功能将永远不会运行。我想可能我可以在每个测试文件中的 after 命令上运行它,但这似乎不是最合乎逻辑的方法。

我该如何处理?是否有完整的process.on Mocha 或类似的东西?有没有更好的方法来处理这个问题?

【问题讨论】:

  • 你可以在process.on('exit', function() {});上收听退出事件
  • @Alex 看起来很棒!随时留下答案,我会接受的。
  • 太好了,很高兴这对你有用 :)

标签: javascript node.js express mocha.js


【解决方案1】:

收听process.on('exit', function() {}),然后在该事件处理程序中执行您的清理代码,将在程序关闭之前处理您的程序,这是因为在发出退出信号SIGINT 之后,exit 是最后发生的事件当进程关闭时。

【讨论】:

    猜你喜欢
    • 2019-07-15
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2021-11-20
    相关资源
    最近更新 更多