2017-10-14 48 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

非常好,我能夠將超時和錯誤檢查集成到我現有的服務器!謝謝〜 –

相關問題