【问题标题】:How do I set up remote browsers in Karma?如何在 Karma 中设置远程浏览器?
【发布时间】:2013-07-08 11:30:46
【问题描述】:

我很难理解 Karma。我愿意:

  • 在我的网络上设置多台主机,运行 Linux、Mac 和 Windows
  • 最好也可以在 Android 和 iPhone 上运行
  • 这些可用于通过 Karma 运行端到端测试
  • 让他们在远程位置而不是本地运行测试

目标:能够自动化测试,确保我们的网站可以在所有平台和浏览器上运行,而不仅仅是我在本地可用的那些。

这可能吗?我正在努力寻找任何好的指南来设置这些东西。

【问题讨论】:

    标签: continuous-integration integration-testing karma-runner end-to-end


    【解决方案1】:

    您可以在远程服务器上启动 webdriver 服务器并配置 karma 以使用 karma-webdriver-launcher 从您的 webdriver 服务器在浏览器上运行测试。

    【讨论】:

    • 令人难以置信的是,我花了多少时间浏览这个答案。我希望在主要业力站点中突出显示 webdriver 设置的描述,因为这是一个非常普遍的疑问,当你首先接近业力。
    • 兼容 Karma 0.12。不适用于 3.x 或 4.x
    【解决方案2】:

    我自己使用 karma 有一段时间了,我想我可以回答你的一些问题。

    我不确定你设置多个主机是什么意思,但我猜你的意思是你想在几个不同的设备上运行测试(甚至可能在不同的浏览器上?)。

    您真正要做的就是将测试和业力安装在可以远程访问的某个服务器上。从该服务器运行 Karma 应该可以让您的其他设备访问它的 Karma 实例,只需打开浏览器并在浏览器的 URL 栏中输入 serverURL:9876。这应该会导致在服务器上找到的所有测试都在打开页面的浏览器上运行。

    如果您想在测试期间查看 Karma 的输出,则必须使用报告器使 karma 吐出一些 HTML(如果您设法做到这一点,请给我打电话!),使用 junit 报告器和对它生成的 xml 进行后期处理,或者简单地通过 SSH 连接到服务器并查看控制台中的结果。

    如果您在 karma 配置文件中使用某种正则表达式,能够找到您推送到服务器的任何新代码和测试文件,那么当您将它们推送到服务器并重新运行所有文件时,karma 将自动加载这些文件测试。

    我自己实际上正在这样做,但我想创建 HTML 测试报告,而不是必须发布处理一些 XML 或必须 SSH 并查看命令行输出。我在使用代码覆盖率工具伊斯坦布尔时也遇到了一些问题,因为如果您同时在多个浏览器上运行测试,则只有其中一个会生成代码覆盖率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      相关资源
      最近更新 更多