我很难理解 Karma。我想:
- 在我的网络上设置多个主机,运行 Linux、Mac 和 Windows
- 最好也可以在 Android 和 iPhone 上运行
- 让这些可用于通过 Karma 运行端到端测试
- 让他们在远程位置而不是本地运行测试
目标:能够自动化测试,确保我们的网站可以在所有平台和浏览器上运行,而不仅仅是我在本地可用的那些。
这可能吗?我正在努力寻找任何好的指南来设置这些东西。
我很难理解 Karma。我想:
目标:能够自动化测试,确保我们的网站可以在所有平台和浏览器上运行,而不仅仅是我在本地可用的那些。
这可能吗?我正在努力寻找任何好的指南来设置这些东西。
You can start a webdriver server on your remote servers and configure karma to use the karma-webdriver-launcher to run the tests on the browsers from your webdriver servers.
我自己使用 karma 有一段时间了,我想我可以回答你的一些问题。
我不确定设置多个主机是什么意思,但我猜你的意思是你想在几个不同的设备上运行测试(甚至可能在不同的浏览器上?)。
您真正要做的就是在可以远程访问的某个服务器上安装测试和业力。从该服务器运行 Karma 应该可以让您的其他设备访问它的 Karma 实例,只需打开浏览器并在浏览器的 URL 栏中输入 serverURL:9876 即可。这应该会导致在服务器上找到的所有测试都在打开页面的浏览器上运行。
如果您想在测试期间查看 Karma 的输出,您要么必须使用报告器让 karma 吐出一些 HTML(如果您设法做到这一点,请给我打电话!),使用 junit 报告器并后处理它生成的xml,或者只是SSH到服务器并查看控制台中出现的内容。
如果您在 karma 配置文件中使用某种正则表达式,它能够找到您推送到服务器的任何新代码和测试文件,那么当您将它们推送到服务器并重新运行所有测试时,karma 将自动加载这些文件。
我自己实际上正在这样做,但我想创建 HTML 测试报告,而不是必须发布处理一些 XML 或必须 SSH 并查看命令行输出。我在使用代码覆盖率工具伊斯坦布尔时也遇到了一些问题,因为如果您同时在多个浏览器上运行测试,则只有其中一个会生成代码覆盖率。