【问题标题】:Running cypress tests in parallel on single machine gives error在单台机器上并行运行 cypress 测试会出错
【发布时间】:2021-04-21 19:17:10
【问题描述】:

TLDR:在 jenkins 的同一台机器上的 docker 容器中运行并行 cypress 测试的问题。

我正在尝试在单个 aws 机器 2 docker 实例上运行 cypress 以同时并行运行不同的套件。我遇到了一些问题,尽管我在 docker-compose.ymlcypress.json 文件上配置并公开了 2 个唯一且不同的端口,但似乎端口冲突。他的第一个容器工作,但第二个容器因以下错误而崩溃:

✖  Verifying Cypress can run /home/my-user/.cache/Cypress/4.1.0/Cypress
→ Cypress Version: 4.1.0
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)

----------

Platform: linux (Ubuntu Linux - 18.04)
Cypress Version: 4.1.0

重要提示:我想自己实现并行化,而不是使用 cypress 中的 --parallel 功能,我需要在同一台机器上的内部封装环境中实现它。 p>

有什么建议吗?

【问题讨论】:

  • 该错误似乎表明这是 X11 的问题,而不是赛普拉斯的问题。也许这就是发生端口冲突的地方?

标签: docker parallel-processing runtime-error cypress xvfb


【解决方案1】:

如果我理解正确,您需要做的就是使用 xvfb-run -a 启动 cypress(在容器中)。例如。 xvfb-run -a npx cypress run --browser Chrome 所以-a 将分配下一个可用端口号,这意味着您可以并行运行多个 cypress 容器。检查http://elementalselenium.com/tips/38-headless

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 2015-06-11
    相关资源
    最近更新 更多