【发布时间】:2018-12-10 10:08:11
【问题描述】:
目前,我的项目测试设置是双重的:至于日常开发,我在 MacOS 上通过 foreman 运行 testcafe(利用我个人的 .env 文件)和 CI 服务器上( BitBucket),我通过testcafe/testcafe docker镜像使用testcafe。
但是,在开发过程中不使用相同的环境和 CI 并不是最优的,所以我认为在这两种情况下使用 docker(-compose) 将是最好的方法。在阅读了 testcafe issue 1880 和 PR 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