Ami*_*pta 5 ubuntu node.js xvfb docker cypress
我正在尝试使用 Node js 并行运行 2 个 cypress docker 容器spawn
docker run -v path/to/ws:/e2e -w /e2e --network host cypress/included:8.0.0 --spec 'cypress/integration/cytorus-cache/1.feature'
docker run -v path/to/ws:/e2e -w /e2e --network host cypress/included:8.0.0 --spec 'cypress/integration/cytorus-cache/2.feature'
Run Code Online (Sandbox Code Playgroud)
它失败并出现以下错误;
Xvfb exited with a non zero exit code.
There was a problem spawning Xvfb.
This is likely a problem with your system, permissions, or installation of Xvfb.
----------
Error: _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE)
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
Run Code Online (Sandbox Code Playgroud)
所以基本上,如果我运行 4 个并行进程,其中 1 个连接到 X11 服务器,3 个会出错。
可以怎样处理呢?我已经尝试将unset DISPLAYCypress 设置为默认以无头模式运行。但这没有帮助。
小智 5
我在并行运行 cypress 测试时遇到了同样的问题。--network host对我来说,修复方法是从命令中删除以避免端口冲突。您可能需要找到另一种方法来访问主机上的服务。
例如,您可以使用172.17.0.1Docker for Linux 来访问主机。
在Linux上运行时,Cypress需要X11服务器;否则它会在测试运行期间生成自己的 X11 服务器。当并行运行多个 Cypress 实例时,同时生成多个 X11 服务器可能会给其中一些服务器带来问题。在这种情况下,您可以单独启动单个 X11 服务器,并使用 DISPLAY 变量将服务器的地址传递给每个 Cypress 实例。
由于X11服务器已经在服务器上运行,所以我只是生成Xvfb :99 &,然后设置地址export DISPLAY=:99。并将 DISPLAY 环境变量传递给 docker cypress 容器。
| 归档时间: |
|
| 查看次数: |
5894 次 |
| 最近记录: |