所以我有我的开源项目(https://github.com/ahmednuaman/radian),我有一些e2e测试,使用Protractor本地运行良好.
我已经按照Sauce Labs文档进行了.travis.yml相应的设置.测试运行直到Protractor尝试连接到Sauce Labs上的selenium服务器,这是错误的简要快照:
Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>>
>> timers.js:103
>> if (!process.listeners('uncaughtException').length) throw e;
>> ^
>> TypeError: Cannot read property 'length' of undefined
>> at HttpClient.send (/home/travis/.nvm/v0.8.26/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)
Run Code Online (Sandbox Code Playgroud)
这是完整的工作日志:https://travis-ci.org/ahmednuaman/radian/jobs/16250460
所以我接下来要做的就是尝试在本地模拟这个.我阅读了Sauce Labs Connect文档并最终在我的终端中运行了这个:
java -jar ~/bin/Sauce-Connect.jar USERNAME PASSWORD
Run Code Online (Sandbox Code Playgroud)
一切都很顺利,与特拉维斯完全一样,但随后我运行了我的grunt e2e任务(在更新后protractor.conf.coffee匹配Travis配置本地)并收到了与Travis相同的错误,这里是一个快照:
Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>>
>> /Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1542
>> …Run Code Online (Sandbox Code Playgroud)