【问题标题】:dockerized testcafe remote browser testsdockerized testcafe 远程浏览器测试
【发布时间】:2018-12-10 10:08:11
【问题描述】:

目前,我的项目测试设置是双重的:至于日常开发,我在 MacOS 上通过 foreman 运行 testcafe(利用我个人的 .env 文件)和 CI 服务器上( BitBucket),我通过testcafe/testcafe docker镜像使用testcafe。

但是,在开发过程中不使用相同的环境和 CI 并不是最优的,所以我认为在这两种情况下使用 docker(-compose) 将是最好的方法。在阅读了 testcafe issue 1880PR 2574 之后,我认为我的开发命令应该是这样的:

docker run -v /Users/bert/Development/m4e/ui_factory/test/tests:/test -p 1337:1337 -p 1338:1338 -it testcafe/testcafe -- remote /test --hostname localhost

但在这种情况下,我似乎无法将 Safari 连接到 http://localhost:1337

Safari 无法打开页面“172.17.0.2:1337/browser/connect/ryD70k”,因为 Safari 无法连接到服务器“172.17.0.2”

有人知道如何解决这个问题吗?

【问题讨论】:

  • 您是否尝试过使用 --net=host 启动(对于 docker compose:network_mode: host)并使用 localhost 而不是 172... docker ip?
  • @mulg0r 这似乎不起作用,可能是因为 docker 在 MacOS 上的虚拟机中运行。使用--net=host 选项,testcafe 会回显Connect URL: http://192.168.65.3:1337/browser/connect,这在我本地的 Safari 中同样无法访问。我想我需要一些 host.docker.internal 的构造,但不确定具体如何。
  • 嗯...也许如果您尝试在 VM 中使用代理,例如 haproxy。我不知道,抱歉,从未在 MAC 中使用过 VM。祝你好运
  • 澄清一下:我不使用虚拟机,我只是使用标准的 Docker for Mac,它依赖于 xhyve 管理程序。在我有限的理解中,这是一种虚拟机……
  • @bertbruynooghe 请问,您生成连接 URL 后,是否手动将 URL 复制并粘贴到浏览器?或者有什么自动化的方法吗?

标签: macos docker testing testcafe docker-for-mac


【解决方案1】:

正如@Marion 指出的那样:罪魁祸首是命令中的--。我用它来确保 该命令的参数显然与 docker 参数分开。 这不仅仅是“不必要的”,而是完全错误的。

【讨论】:

    【解决方案2】:

    请删除以下记录中不必要的“--”:

    testcafe/testcafe -- 远程

    这里有一个帮助主题,描述了如何使用 TestCafe Docker Image:

    Using TestCafe Docker Image

    【讨论】:

    • 我同意-- 可能已经过时了;我只是想确保 testcafe 参数不会被无意中用作 docker 参数。非常欢迎您指出一些关于 Docker 如何区分 docker 和 cmd 参数的解释...
    • 我同意到目前为止解决此类问题的最佳位置是您提供的链接。但是,正如我在问题中发布的问题和 PR 所证明的那样,它是不完整的(至少可以说)。
    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 2019-02-23
    • 1970-01-01
    • 2019-08-25
    • 2019-09-12
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多