【问题标题】:How to run Cypress test runner in vagrant guest using host machine's browser in Ubuntu如何在 Ubuntu 中使用主机浏览器在 vagrant guest 中运行 Cypress 测试运行程序
【发布时间】:2021-04-20 13:59:22
【问题描述】:

我在 vagrant box 中有一个项目,我想在 cypress 上运行 e2e 测试。我能够在客户机中无头运行 cypress。但我想要它提供的 GUI 功能。如何运行 Cypress 以便它可以使用主机的浏览器来运行测试? 我有 Ubuntu 20.04。

【问题讨论】:

    标签: vagrant cypress


    【解决方案1】:

    如果您使用 Linux 主机,您实际上只需要将主机上的 /tmp/.X11-unix 的卷映射到来宾。

    d.volumes = ["/tmp/.X11-unix:/tmp/.X11-unix"]
    

    参考:https://github.com/ProxiBlue/vagrant_docker_cypress/blob/main/Vagrantfile#L38

    完整示例位于此处:https://github.com/ProxiBlue/vagrant_docker_cypress 和一个视频显示它工作:https://www.youtube.com/watch?v=DDmNgtyE_kE

    【讨论】:

      【解决方案2】:

      我想出了该怎么做,以防万一将来有其他人需要这样做。

      显然,要使其正常工作,需要X-forwarding。这意味着客人必须将 GUI 显示转发给主机。

      假设您已经正确安装了 cypress 并且可以无头运行它:yarn run cypress run(或者无论您以哪种方式运行它,npm 等)

      1.您需要主机上的 X-Server。

      • 在 Linux 上,您已经拥有并运行 X Server
      • 在 Mac 上,在 Mac OSX 上,您可以安装 XQuartz

      2。在您的 Vagrant VM 上启用 X-forwarding

      只需将此添加到您的Vagrantfile

      config.ssh.forward_x11 = true
      

      3. ssh 进入没有 vagrant ssh 的盒子

      我们需要使用ssh 访问来宾,而不是普通的vagrant ssh。这样做: 使用 vagrant 文件在目录中的主机上运行 vagrant ssh-config

      $ vagrant ssh-config
      Host default
        HostName 127.0.0.1
        User ubuntu
        Port 2222
        UserKnownHostsFile /dev/null
        StrictHostKeyChecking no
        PasswordAuthentication no
        IdentityFile /Users/xxxx/work/.vagrant/private_key
        IdentitiesOnly yes
        LogLevel FATAL
        ForwardX11 yes
      

      从这里我们得到了 ssh 所需的详细信息。 userHostNamePortIdentityFile

      现在我们可以从主机 ssh 进入来宾并运行 cypress 测试运行程序。

      我们还需要添加 -X 标志,告诉 ssh 使用 X 转发。

      假设我的项目在我的客户机主目录中名为 project 的目录中运行...在您的机器运行时从主机运行此命令。

      ssh vagrant@127.0.0.1 -X -p 2222 -i /Users/xxxx/work/.vagrant/private_key -t "cd /home/vagrant/project; yarn run cypress open"
      

      瞧!测试运行器将在您的盒子中运行,GUI 将显示在您的主机上。

      感谢GaborMartin

      【讨论】:

      • 很好的说明,非常感谢。
      猜你喜欢
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2014-12-27
      相关资源
      最近更新 更多