【发布时间】: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