用 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 pipelines
做E2E
时,测试服务器无法访问localhost
。在那种情况下,您需要一个单独的服务器来为测试服务器提供站点。
目前,如果您正在考虑通过启动和停止 Web 服务器在本地计算机上进行 运行ning 测试,我建议您使用 visual studio code
中的 live server
扩展。这是非常轻量级的,是服务 HTML
和 asserts
的最佳选择。它将在 localhost
上启动您的网站,一旦您的工作完成,您可以单击按钮停止它。
我有一个奇怪的问题:我有一个从网页(只是实际的 HTML 页面,而不是 API 响应)抓取数据的程序。
我需要使用 Jest 库为此程序编写端到端测试。为了始终如一地测试功能,我需要确保引用的网页不会发生变化,这几乎不可能通过网络上的资源实现。
我想知道使用 express/fastify/etc 在本地启动一个新的网络服务器是一种很好的做法。在 运行 测试之前提供静态 HTML 页面,然后在测试通过后关闭服务器。
我正在寻找的是具有单一任务的轻型 Web 服务器 - 提供静态 html+css 页面。 有没有更好的方法来实现我提到的?提前致谢!
我们 运行 E2E
在我们的开发服务器 EG:- https://dev.something.com
上,它始终处于运行状态 运行ning。另外正如您所说,您可以在 localhost
到 运行 测试中启动轻量级网络服务器。但唯一的问题是当你使用CI/CD pipelines
做E2E
时,测试服务器无法访问localhost
。在那种情况下,您需要一个单独的服务器来为测试服务器提供站点。
目前,如果您正在考虑通过启动和停止 Web 服务器在本地计算机上进行 运行ning 测试,我建议您使用 visual studio code
中的 live server
扩展。这是非常轻量级的,是服务 HTML
和 asserts
的最佳选择。它将在 localhost
上启动您的网站,一旦您的工作完成,您可以单击按钮停止它。