如何一次性启动赛普拉斯测试,Vue前端和后端?

问题描述 投票:0回答:1

我想在Vue.js应用程序上使用赛普拉斯设置E2E测试。当我启动赛普拉斯测试时,它警告我Vue应用程序(在localhost:8080上)没有运行,这让我有点惊讶。我认为随着赛普拉斯测试的开始,Vue应用程序将自动启动(自动启动?;)。但是 - 事实证明 - 它不会这样做。

我现在要做的是创建一个测试脚本,它将同时启动赛普拉斯测试,Vue.js前端应用程序和后端Node.Js / Express应用程序。 (前端和后端应用程序目前不是很大,所以启动它们不应该花那么长时间。当它们变大时,我很可能会为后端调用添加存根。)

但是,我无法找到如何做到这一点!我可以手工启动它们,但这看起来非常麻烦。我无法想象在某些脚本或其他代码或配置的帮助下无法做到这一点。

从我收集到的内容来看,我认为我需要创建一些Webpack脚本来实现这一点,但这就是我能找到的全部内容(我没有Webpack经验,这对任何一个都没有帮助......) 。如何创建一个(shell?)脚本来实现这一目标?

vue.js e2e-testing cypress
1个回答
0
投票

我相信你必须检查赛普拉斯的文件 - https://docs.cypress.io/guides/guides/continuous-integration.html#Boot-your-server

以下是内容的摘录,

许多人通过运行如下命令来处理这种情况:

npm start & cypress run // Do not do this

问题是 - 如果您的服务器需要时间启动会发生什么?当下一个命令运行(cypress run)时,无法保证您的Web服务器已启动且可用。因此,您的赛普拉斯测试可能会启动并尝试访问您的本地服务器,然后才能访问它。

幸运的是,有一些解决方案。您可以使用更好的选项,而不是引入任意等待(如睡眠20)。

wait-on模块

使用wait-on模块,可以阻止cypress run命令执行,直到服务器启动。

npm start & wait-on http://localhost:8080

cypress run
© www.soinside.com 2019 - 2024. All rights reserved.