2017-10-14 50 views
1

我一直在开发,我想在特拉维斯-CI已经测试了一个节点基于服务器,可问题是我现在想测试是如果服务器有如何干净地退出CI的npm服务器测试?

(这是对启动任何错误的唯一的事情只是用于提供API的后端;它在启动时的所有功能都是从端口提供的)。

如果它开始正常,我不希望它在CI的虚拟机上永远运行。我试过让我的package.json中的测试脚本指向一个bash脚本,该脚本使用kill与PID,但不会干净地退出以传递Travis的构建。

长话短说,我应该写些什么让我的测试运行npm start几秒钟,然后在没有错误的情况下干净关闭节点?

回答

0

您可以在服务器周围添加一个包装器,作为测试运行,您可以在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) 
}) 
+0

非常好,我能够将超时和错误检查集成到我现有的服务器!谢谢〜 –

相关问题