用 Jest 模拟网络服务器进行测试

Imitate webserver for tests with Jest

我有一个奇怪的问题:我有一个从网页(只是实际的 HTML 页面,而不是 API 响应)抓取数据的程序。

我需要使用 Jest 库为此程序编写端到端测试。为了始终如一地测试功能,我需要确保引用的网页不会发生变化,这几乎不可能通过网络上的资源实现。

我想知道使用 express/fastify/etc 在本地启动一个新的网络服务器是一种很好的做法。在 运行 测试之前提供静态 HTML 页面,然后在测试通过后关闭服务器。

我正在寻找的是具有单一任务的轻型 Web 服务器 - 提供静态 html+css 页面。 有没有更好的方法来实现我提到的?提前致谢!

我们 运行 E2E 在我们的开发服务器 EG:- https://dev.something.com 上,它始终处于运行状态 运行ning。另外正如您所说,您可以在 localhost 到 运行 测试中启动轻量级网络服务器。但唯一的问题是当你使用CI/CD pipelinesE2E时,测试服务器无法访问localhost。在那种情况下,您需要一个单独的服务器来为测试服务器提供站点。

目前,如果您正在考虑通过启动和停止 Web 服务器在本地计算机上进行 运行ning 测试,我建议您使用 visual studio code 中的 live server 扩展。这是非常轻量级的,是服务 HTMLasserts 的最佳选择。它将在 localhost 上启动您的网站,一旦您的工作完成,您可以单击按钮停止它。

Live Server (VS Code Extension)