【问题标题】:How to start Cypress test, Vue front-end, and back-end in one go?如何一次性启动 Cypress 测试、Vue 前端和后端?
【发布时间】:2019-04-02 20:03:35
【问题描述】:

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

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

但是,我不知道如何执行此操作!我可以手动启动它们,但这似乎很麻烦。我无法想象这不能在某些脚本或其他代码或配置的帮助下完成。

根据我收集到的信息,我认为我需要创建某种 Webpack 脚本来实现这一点,但这就是我所能找到的全部(我几乎没有 Webpack 经验,这也无济于事。 ..)。 我怎样才能创建一个(shell?)脚本来完成这个?

【问题讨论】:

  • python中的简单启动脚本?如果您尝试将其粘贴到问题和可能的错误中。

标签: vue.js e2e-testing cypress


【解决方案1】:

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

这是内容的摘录,

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

npm start & cypress run // Do not do this

问题是 - 如果您的服务器需要时间来启动会发生什么?无法保证在下一个命令运行 (cypress run) 时您的 Web 服务器已启动且可用。因此,您的 Cypress 测试可能会开始并尝试在您的本地服务器准备好被访问之前访问它。

解决方案

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

wait-on模块

使用等待模块,您可以阻止 cypress run 命令在服务器启动之前执行。

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

cypress run

【讨论】:

  • 感谢您的提示!我已经查看了赛普拉斯网站的所有内容,但显然设法错过了这部分......
猜你喜欢
  • 2018-11-22
  • 2022-10-14
  • 2015-02-06
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 2021-05-22
  • 2019-06-06
  • 1970-01-01
相关资源
最近更新 更多