2
假設我有一些測試Web服務器的單元測試。由於我不想在這裏討論的原因(外部範圍;-)),每個測試都需要一個新啓動的服務器。在單元測試中關閉Node.js http服務器
只要我不發送請求到服務器,一切都很好。但是一旦我這樣做,對http服務器的調用close
函數就無法按預期工作,因爲所有發出的請求都會導致保持活動的連接,因此服務器在實際關閉前等待120秒。
當然這是不能接受的運行測試。
目前,唯一的解決方案,我想看到的是無論是
- 保持連接超時設置爲
0
,所以close
通話將實際關閉服務器, - 或每次啓動服務器位於不同的端口上,但當您進行大量測試時,這變得很難處理。
如何處理這種情況的任何其他想法?
PS:我有一個要求How do I shutdown a Node.js http(s) server immediately?前一陣子,發現一個可行的辦法來解決它,但因爲它似乎這種解決方法並不在任何情況下可靠地運行,因爲我得到了奇怪的結果,不時。
如何在第一個地方啓動服務器?您是從節點還是從其他腳本運行node.js服務器? – jsalonen
另外我明白你可能有嚴格的要求,但是你真的需要在每次測試後重新啓動服務器嗎?我的意思是你能重構一些東西,讓你可以在同一臺服務器上運行多個測試嗎? – jsalonen
使用通常的'http.createServer.listen'東西,使用Node.js以編程方式啓動服務器。不幸的是,我* DO *需要在每個測試中都有一個新實例: - / –