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 *需要在每个测试中都有一个新实例: - / –