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

huus2vyu  于 2022-11-28  发布在  Docker
关注(0)|答案(6)|浏览(196)

我可以从我的电脑与网页浏览器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”发出请求,如果不启动服务器,这些测试将失败。
所以基本上,我可以从我的电脑,但容器不能达到?

doinxwow

doinxwow1#

Cypress给您这个错误是因为在Cypress启动时,您的应用程序还没有准备好开始响应请求。
假设您的应用程序需要10秒钟来设置并开始响应请求。如果您同时启动应用程序和Cypress,Cypress将无法在前10秒钟访问您的应用程序。Cypress将退出并告诉您您的应用程序尚未联机,而不是无限期地等待应用程序联机。
解决此问题的方法是确保Web服务器在Cypress打开之前就开始服务。Cypress文档中有一些示例说明如何实现此目的:https://docs.cypress.io/guides/guides/continuous-integration.html#Boot-your-server

92vpleto

92vpleto2#

我得到了“Cypress未能验证您的服务器正在运行”的问题,尽管能够通过浏览器访问该网站。问题是我的

/etc/hosts

文件不包含行:

127.0.0.1 localhost
uwopmtnx

uwopmtnx3#

在您的CICD管道中,确保您的应用程序在Cypress之前启动并运行。
以Vue.js应用程序为例,在CICD管道脚本中使用以下命令:

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

yeotifhr4#

如果您尝试在预览/临时环境中运行测试,并且可以手动访问该环境,则问题可能出在代理设置上。请尝试将域添加到/ IP地址到NO_PROXY:

set NO_PROXY="your_company_domain.com"

如果导航到测试运行器中的“代理设置”,您应该会看到“代理服务器”和“代理绕过列表”,以及NO_PROXY值。
我希望它能帮助到一些人。编码快乐。

wyyhbhjk

wyyhbhjk5#

当我使用gitlab ci和docker image开发一个react应用程序的时候,我也遇到了同样的问题。React应用程序的默认端口是3000,但是docker image的默认端口是5000。所以我使用cross-env将react应用程序的默认端口改为5000:- 台阶
1.下载跨环境软件包
1.在脚本更改“start”下的package.json文件中:将“react-scripts start”更改为“start”:'跨环境PORT=5000React脚本启动'
另外,如果使用docker,您需要确保前端和后端都在工作。Cypress不会自动启动前端服务器。

  1. npm启动
  2. npm启动< back-end>
  3. npx cypress运行或npx cypress打开
oipij1gg

oipij1gg6#

我用update docker for Mac版本解决了这个问题,并重置了我的设置。

相关问题