如何干净地退出CI的npm服务器测试?
问题描述:
我一直在开发,我想在特拉维斯-CI已经测试了一个节点基于服务器,可问题是我现在想测试是如果服务器有如何干净地退出CI的npm服务器测试?
(这是对启动任何错误的唯一的事情只是用于提供API的后端;它在启动时的所有功能都是从端口提供的)。
如果它开始正常,我不希望它在CI的虚拟机上永远运行。我试过让我的package.json中的测试脚本指向一个bash脚本,该脚本使用kill
与PID,但不会干净地退出以传递Travis的构建。
长话短说,我应该写些什么让我的测试运行npm start
几秒钟,然后在没有错误的情况下干净关闭节点?
答
您可以在服务器周围添加一个包装器,作为测试运行,您可以在x秒的时间后或者发生错误时退出该测试。这样的事情:
require('./myserver') // i asume this starts your server
setTimeout(() => process.exit(0), 5000) // exits with 0 exit code after 5 seconds
process.on('uncaughtException', (err) => {
console.log(err)
process.exit(1)
})
非常好,我能够将超时和错误检查集成到我现有的服务器!谢谢〜 –