Docker 中的 运行 时赛普拉斯错误 "The automation client disconnected. Cannot continue running tests."

Cypress error "The automation client disconnected. Cannot continue running tests." when running in Docker

运行 Docker 容器中的 Cypress 测试套件时出现以下错误:

The automation client disconnected. Cannot continue running tests.

使用此命令,运行 在 cypress/browsers:node12.6.0-chrome75 容器中:

cypress run --browser=chrome

这似乎发生在 运行 离开 shm space 时。

默认情况下,Docker 创建一个具有 /dev/shm 共享内存 space 64MB 的容器。 这通常对于 Chrome 来说太小了,可能会导致 Chrome 崩溃。

我找到了两个解决方法:

  1. 禁止使用 /dev/shm:
// cypress/plugins/index.js

module.exports = (on, config) => {
  // ref: https://docs.cypress.io/api/plugins/browser-launch-api.html#Usage
  on('before:browser:launch', (browser = {}, args) => {
    if (browser.name === 'chrome') {
      args.push('--disable-dev-shm-usage')
      return args
    }

    return args
  })
}
  1. 增加容器中 /dev/shm 的大小:

运行 docker run --shm-size=1gb 的容器(或任何你想要的大小)