如何解决Cypress Test Runner运行时报GpuControl.CreateCommandBuffer错误?
问题原因
你遇到的ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer报错属于Cypress内置Chromium浏览器的GPU硬件加速兼容问题,通常出现在显卡驱动不兼容、远程桌面环境、云服务器/虚拟机无独立显卡的场景下,不影响Cypress Test Runner的正常启动和测试用例执行,仅会在终端输出冗余错误日志。
解决方案
方案1:临时启动时禁用GPU加速
执行启动命令时追加--disable-gpu参数即可消除报错:
如果是在package.json中配置启动脚本,修改对应配置即可:npm run cypress open -- --disable-gpu{ "scripts": { "cypress:open": "cypress open --disable-gpu" } }方案2:Linux环境补充兼容参数
如果你是在Linux系统、云服务器、容器环境中运行Cypress,可以追加更多兼容参数解决报错:npm run cypress open -- --disable-gpu --no-sandbox --disable-dev-shm-usage方案3:全局配置默认禁用GPU
可以直接在Cypress配置文件中添加启动参数,无需每次执行命令时手动追加,以cypress.config.js为例:const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { on('before:browser:launch', (browser = {}, launchOptions) => { if (browser.family === 'chromium') { launchOptions.args.push('--disable-gpu') // Linux环境可以额外取消注释下面两个参数 // launchOptions.args.push('--no-sandbox') // launchOptions.args.push('--disable-dev-shm-usage') } return launchOptions }) }, }, })
内容的提问来源于stack exchange,提问作者Nazmul Hasan
相关产品推荐
相关产品推荐

