赛普拉斯无法验证设置为“ baseUrl”的服务器正在运行:

时间:2018-12-28 14:23:38

标签: docker mocha cypress

我可以从使用网络浏览器的计算机访问xxxx.com:8089,该计算机也正在容器上运行,但远程计算机不同。一切都好。我的cypress.json

“ baseUrl”:“ http://xxxx.com:8089”。

我正在尝试运行docker容器以使用Cypress进行测试:

docker run --rm --name burak --ipc="host" -w /hede -v         /Users/kurhanb/Desktop/nameoftheProject:/hede'  cypress  /bin/bash -c    cypress run --browser chrome && chmod -R 777 . --reporter mochawesome --reporter-options --reportDir=Users/kurhanb/Desktop/CypressTest overwrite=false

它给了我:

Cypress无法验证设置为“ baseUrl”的服务器正在运行:

  

http://xxxx.com

您的测试可能会向此“ baseUrl”发出请求,并且如果您不启动服务器,这些测试将失败。

所以基本上,我可以从计算机上访问,但是容器不能访问?

4 个答案:

答案 0 :(得分:1)

Cypress会给您该错误,因为在Cypress启动时,您的应用程序尚未准备好开始响应请求。

假设您的应用程序需要10秒钟来设置并开始响应请求。如果您同时启动应用程序和赛普拉斯,则赛普拉斯将在最初的十秒钟内无法访问您的应用程序。而不是无限期地等待该应用程序上线,赛普拉斯将退出并告诉您您的应用程序尚未上线。

解决此问题的方法是在Cypress开机之前确保Web服务器正在运行。赛普拉斯文档中提供了一些有关如何实现此目标的示例:https://docs.cypress.io/guides/guides/continuous-integration.html#Boot-your-server

答案 1 :(得分:0)

我用Mac的更新docker解决了这个问题,并重置了我的设置。

答案 2 :(得分:0)

尽管能够通过浏览器访问该站点,但仍然遇到“ Cypress无法验证您的服务器正在运行”的问题。问题是我的

/etc/hosts

文件中没有一行:

127.0.0.1 localhost

答案 3 :(得分:0)

在您的CICD管道中,请确保在赛普拉斯之前启动并运行您的应用程序。

以Vue.js应用为例,在CICD管道脚本中使用以下命令:

npm install -g wait-on
npm run serve & wait-on http://localhost:8080
cypress run