Bitbucket Pipelines运行Cypress失败:无法启动Chrome,疑与Percy相关
问题分析与解决方案
首先帮你理清疑惑:Percy内部是通过Puppeteer来处理页面快照生成的,所以它会启动自带的Chromium实例,而不是Cypress默认的Electron浏览器——这是Percy的正常设计,不是Bug,只是你的Bitbucket Pipelines环境缺少Chromium运行所需的系统依赖,才导致了启动失败。
具体解决步骤
你的报错核心是缺少libX11-xcb.so.1这类系统库,解决方法有两种:
方法1:手动安装缺失的依赖
在Bitbucket Pipelines的配置文件(bitbucket-pipelines.yml)中,在运行Cypress命令前,添加系统依赖安装步骤:
pipelines: default: - step: name: 运行Cypress + Percy测试 image: node:14 # 或者你当前使用的Node镜像 script: # 安装Chromium运行所需的系统依赖 - apt-get update && apt-get install -y --no-install-recommends libx11-xcb1 libxcb-dri3-0 libxss1 libnss3 libgtk-3-0 libgbm-dev - yarn cy:ci --parallel --ci-build-id $BITBUCKET_BUILD_NUMBER
方法2:使用Cypress官方Docker镜像(更推荐)
Cypress官方提供的cypress/base系列镜像已经预装了所有Cypress和Chromium运行所需的依赖,直接使用它可以省去手动安装的麻烦:
pipelines: default: - step: name: 运行Cypress + Percy测试 image: cypress/base:14.17.0 # 选择和你项目Node版本匹配的镜像 script: - yarn cy:ci --parallel --ci-build-id $BITBUCKET_BUILD_NUMBER
验证说明
配置修改后重新触发Bitbucket Pipelines构建,Percy就能正常启动Chromium完成快照生成了。如果还有类似的依赖报错,只需要把对应的库添加到apt-get install的列表里即可。
内容的提问来源于stack exchange,提问作者FredyC
相关产品推荐
相关产品推荐

