假设我有一些单元测试,用于测试Web服务器。由于我不想在这里讨论原因(超出范围;-),每个测试都需要一个新启动的服务器。
只要我不向服务器发送请求,一切都很好。但是一旦我这样做了,对http服务器的
当然,这对于运行测试来说是不可接受的。
目前,我唯一看到的解决方案是:
PS:我之前问过一个问题如何立即关闭Node.js http(s)服务器?,并找到了一种可行的解决方法,但似乎这种解决方法不总是可靠的,因为我有时会得到奇怪的结果。
只要我不向服务器发送请求,一切都很好。但是一旦我这样做了,对http服务器的
close
函数的调用就不像预期的那样工作,因为所有已经发出的请求都会产生保持活动状态的连接,因此服务器会等待120秒才真正关闭。当然,这对于运行测试来说是不可接受的。
目前,我唯一看到的解决方案是:
- 将保持活动状态的超时时间设置为
0
,这样调用close
将实际关闭服务器, - 或者在不同的端口上启动每个服务器,尽管当您有大量测试时,这变得难以处理。
PS:我之前问过一个问题如何立即关闭Node.js http(s)服务器?,并找到了一种可行的解决方法,但似乎这种解决方法不总是可靠的,因为我有时会得到奇怪的结果。
http.createServer.listen
这些东西。不幸的是,是的,每个测试都需要一个新实例 :-/ - Golo Roden