【发布时间】:2014-12-12 09:48:29
【问题描述】:
编辑:这已作为一个有趣的网络问题得到解决,请参阅下面的我的 cmets 和答案。
原帖:
我的目标:与实习生一起在 BrowserStack 上设置概念验证测试。
我查看了intern-tutorial,这对我来说在 Sauce Labs 上运行良好,现在我只想了解如何修改该配置以在 BrowserStack 上进行测试,这对我来说一直失败。
终端命令,按照教程:
./node_modules/.bin/intern-runner config=tests/intern
运行时,我得到:
Listening on 0.0.0.0:9000
Starting tunnel...
BrowserStackLocal v2.2
Connecting to BrowserStack using WebSocket protocol...
Connected.
Ready
Error: connect ETIMEDOUT
at errnoException <net.js:904:11>
at Object.afterConnect [as oncomplete] <net.js:895:19>
TOTAL: tested 0 platforms, 0/0 tests failed; fatal error occurred
环境:
操作系统:Mac OS X 10.9.4
节点:0.10.29
NPM:1.4.21
实习生: 2.0.1
在 ~/.bash_profile 中设置的变量为:
export BROWSERSTACK_USERNAME="<my_actual_username>"
export BROWSERSTACK_ACCESS_KEY="<my_actual_access_key>"
在测试/实习生中设置实习生配置为:
define({
proxyPort: 9000,
proxyUrl: 'http://localhost:9000/',
capabilities: {
'selenium-version': '2.41.0'
},
environments: [
{ os: "Windows", os_version: "8.1", browser: "chrome", browser_version: "34.0" }
],
maxConcurrency: 3,
tunnel: 'BrowserStackTunnel',
tunnelOptions: {
verbose: true
},
loader: {
packages: [ { name: 'app', location: 'app' } ]
},
suites: [ 'tests/hello' ],
functionalSuites: [ 'tests/functional/index' ],
excludeInstrumentation: /^(?:tests|node_modules)\//
});
这就是自完成教程以来发生的所有变化:
- 删除了除一个环境对象之外的所有环境对象(为简单起见),将其修改为 BrowserStack 支持的格式。
- 将“隧道”属性设置为适当的隧道类。
- 设置 tunnelOptions: { verbose: true } 进行调试。
我尝试过的事情:
- 在执行运行器时在命令行中设置 BROWSERSTACK_USERNAME 和 BROWSERSTACK_ACCESS_KEY 内联,以防万一。
- 使用了这里的配置(我承认已经过时了):https://stackoverflow.com/questions/23304388/intern-js-and-browserstack
- 愚蠢检查、计算机重启等
我的环境对象应该是有效的,因为它基于来自:
https://www.browserstack.com/automate/browsers.json
我觉得这里缺少一些关于配置的基本内容。
【问题讨论】:
-
您能否安装 longjohn 并确定该可怕错误的来源,以便我们可以减少它的用处?谢谢:)
-
@CSnover,我现在非常有信心这是一个 WebSocket 问题。这是我与 longjohn 的输出:pastebin.com/Cd4cQeCp
-
据报道(在不相关的应用程序中),WebSocket - BrowserStack 试图在这里使用 - 在许多移动网络上被阻止。我碰巧使用 Verizon Jetpack 进行 WiFi。请参阅此处的一些帖子示例:socketio4net.codeplex.com/discussions/458768