我可以从我的电脑与网页浏览器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”发出请求,如果不启动服务器,这些测试将失败。
所以基本上,我可以从我的电脑,但容器不能达到?
6条答案
按热度按时间doinxwow1#
Cypress给您这个错误是因为在Cypress启动时,您的应用程序还没有准备好开始响应请求。
假设您的应用程序需要10秒钟来设置并开始响应请求。如果您同时启动应用程序和Cypress,Cypress将无法在前10秒钟访问您的应用程序。Cypress将退出并告诉您您的应用程序尚未联机,而不是无限期地等待应用程序联机。
解决此问题的方法是确保Web服务器在Cypress打开之前就开始服务。Cypress文档中有一些示例说明如何实现此目的:https://docs.cypress.io/guides/guides/continuous-integration.html#Boot-your-server
92vpleto2#
我得到了“Cypress未能验证您的服务器正在运行”的问题,尽管能够通过浏览器访问该网站。问题是我的
文件不包含行:
uwopmtnx3#
在您的CICD管道中,确保您的应用程序在Cypress之前启动并运行。
以Vue.js应用程序为例,在CICD管道脚本中使用以下命令:
yeotifhr4#
如果您尝试在预览/临时环境中运行测试,并且可以手动访问该环境,则问题可能出在代理设置上。请尝试将域添加到/ IP地址到NO_PROXY:
如果导航到测试运行器中的“代理设置”,您应该会看到“代理服务器”和“代理绕过列表”,以及NO_PROXY值。
我希望它能帮助到一些人。编码快乐。
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不会自动启动前端服务器。
oipij1gg6#
我用update docker for Mac版本解决了这个问题,并重置了我的设置。