本地正常但Gitlab运行Cypress测试报错:CreatePlatformSocket()失败(97)求助
解决Gitlab CI中Cypress测试的CreatePlatformSocket()错误
这个错误是Gitlab CI环境中网络协议支持问题导致的,以下是几种可行的排查和解决方法:
强制Cypress使用IPv4
多数情况下,问题源于CI环境禁用了IPv6,而Cypress默认尝试使用IPv6创建socket。可以通过环境变量强制切换到IPv4:
在Gitlab CI脚本中添加:export CYPRESS_FORCE_IPV4=true npx cypress run或者在Gitlab Runner的
config.toml配置文件中全局设置环境变量:[[runners]] environment = ["CYPRESS_FORCE_IPV4=true"]给Chrome内核浏览器添加禁用IPv6参数
如果测试使用Chrome或Edge浏览器,可在Cypress配置中添加启动参数强制禁用IPv6:
在cypress.config.js中修改:const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { on('before:browser:launch', (browser, launchOptions) => { if (browser.family === 'chromium' && browser.name !== 'electron') { launchOptions.args.push('--disable-ipv6') return launchOptions } }) }, }, })更换合适的CI镜像
避免使用过于精简的基础镜像(如Alpine),这类镜像可能缺少必要的网络组件支持。改用Cypress官方提供的debian-based镜像,比如cypress/included:latest,镜像已预配置好测试所需的所有依赖和网络环境。检查Runner主机的网络配置
如果Gitlab Runner部署在物理机/虚拟机上,确认主机是否禁用了IPv6,或者防火墙规则是否阻止了socket创建。可临时启用IPv6测试,或调整防火墙允许相关网络操作。
内容的提问来源于stack exchange,提问作者Kulsurya
相关产品推荐
相关产品推荐

