如何在Karma中设置远程浏览器?

时间:2013-07-08 11:30:47

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

我在Karma周围缠头时遇到了麻烦。我想:

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

目标:能够自动化测试,确保我们的网站适用于所有平台和浏览器,而不仅仅是本地可用的网站。

这可能吗?我很难找到任何好的指南来设置这些东西。

2 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:1)

我自己一直在使用业力,我想我可以回答你的一些问题。

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

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

如果你想在测试过程中看到来自Karma的输出,你要么必须使用记者将业力吐出一些HTML(如果你设法这样做,给我一个电话!),使用junit记者和post处理它生成的xml,或者只是SSH到服务器,看看控制台中出现了什么。

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

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