所以我有一些Mocha测试可以根据我的Express服务器运行一些测试。
我在server.js文件中运行以下代码来处理在服务器关闭时完成的一些清理工作(正常关闭服务器,记录一些信息,停止本地数据库,如果存在等)。
process.on ('SIGINT', function () {
gracefulShutdown();
});
这在运行nodemon server.js
之类的命令时非常有效。当我点击命令-c它处理清理时,一切都很顺利。
问题是我希望在Mocha测试完成后运行。目前,当运行mocha
时,它会运行我的测试目录中的所有测试。我已经考虑过像上一个Mocha测试文件中的after函数一样运行该函数。问题是我有多个Mocha运行的测试文件,如果我决定只运行一个测试文件,那么该函数将永远不会运行。我想我可能会在每个测试文件中使用after命令运行它,但这似乎不是最合乎逻辑的方法。
我该如何处理?是否有process.on
摩卡完整或类似的东西?有没有更好的方法来解决这个问题?
答案 0 :(得分:4)
听取process.on('exit', function() {})
然后在该事件处理程序中执行清理代码将在程序关闭之前处理该程序,这是因为在SIGINT
发出退出信号后,exit
是进程关闭时发生的最后一个事件。