Polymer 异步测试在 sauce 实验室超时,但在本地不超时
Polymer async tests timeout in sauce labs, but not locally
我已经为 Polymer Web 组件创建了多个测试。
测试是根据 polycast #36 中提供的指南编写的。
当我 运行 在本地使用 Web-Component-Tester 进行测试时,一切正常并且我的测试通过了。
当我 运行 在本地浏览器(chrome 和 firefox)中进行测试时,一切正常。
我还设置了 Travis-CI 和 Sauce Labs 进行自动化测试。
Travis 可以在 shell 本地 运行 WCT。这非常有效,我的测试通过了。
但是,当 WCT 为 运行 且启用了 sauce 插件时,并且在 sauce labs 浏览器上的测试为 运行,只有异步测试失败。
我的测试正在等待 JS 事件被触发。
我认为该事件从未收到过。
WCT 的输出并不是很有帮助。
它只是抱怨从未调用 done() 方法。
有没有其他人在使用 WCT 和 Sauce Labs 时遇到同样的问题?
如果是这样,有人有解决这些异步测试的方法吗?
编辑 1:
我应该补充一点,我的组件包装了一个原生的 websocket。
异步测试等待组件在捕获 websocket 事件后重新触发的 websocket 事件。
这个问题可能与 Sauce Labs 的 SSL Bumping 有关。
我无法弄清楚为什么在 Sauce 浏览器中 运行 时外部连接失败。
解决方案是对 websocket 连接进行存根,以便仅测试包装器而不是包装器 + websocket。
存根的另一个优点当然是测试 运行 更快。
我已经为 Polymer Web 组件创建了多个测试。 测试是根据 polycast #36 中提供的指南编写的。 当我 运行 在本地使用 Web-Component-Tester 进行测试时,一切正常并且我的测试通过了。 当我 运行 在本地浏览器(chrome 和 firefox)中进行测试时,一切正常。
我还设置了 Travis-CI 和 Sauce Labs 进行自动化测试。 Travis 可以在 shell 本地 运行 WCT。这非常有效,我的测试通过了。 但是,当 WCT 为 运行 且启用了 sauce 插件时,并且在 sauce labs 浏览器上的测试为 运行,只有异步测试失败。
我的测试正在等待 JS 事件被触发。 我认为该事件从未收到过。 WCT 的输出并不是很有帮助。 它只是抱怨从未调用 done() 方法。
有没有其他人在使用 WCT 和 Sauce Labs 时遇到同样的问题? 如果是这样,有人有解决这些异步测试的方法吗?
编辑 1: 我应该补充一点,我的组件包装了一个原生的 websocket。 异步测试等待组件在捕获 websocket 事件后重新触发的 websocket 事件。
这个问题可能与 Sauce Labs 的 SSL Bumping 有关。
我无法弄清楚为什么在 Sauce 浏览器中 运行 时外部连接失败。
解决方案是对 websocket 连接进行存根,以便仅测试包装器而不是包装器 + websocket。
存根的另一个优点当然是测试 运行 更快。