在使用anguar进行端对端的测试时angular会自动对webdriver-manager进行更新,而此时如果我们的网络不支持连接该更新的服务器,则将提示E/downloader - read ECONNRESET,最终导致e2e测试无法启动。
笔者尝试成了以下两种设置代理解决办法,分享如下。
前提:需要一个可以浏览外网的代理。
设置IDE代理法
如果你使用的的具有设置代理功能的IDE,并且该IDE支持设置代码,比如笔者使用的为webstorm,则可以打开相应的代码设置界面,设置以下信息:
点击Check connection后输入:https://chromedriver.storage.googleapis.com/
提示连接成功则代理设置正确。然后打开webstorm的控制台,执行ng e2e即可启动集成测试:
手动添加命令法
如果你没有使用具有代码功能的IDE,或是你就想在原生的shell中启动angular的集成测试,那么也可以参考以下方法:
- 打到项目的package.json
- 在e2e命令前加入
"pree2e":"webdriver-manager update --proxy 'http://localhost:7890/' --ignore_ssl",
- 使用
npm install
进行安装 - 使用
npm run e2e
此时,该命令也会为我们启动代理来进行更新。
"pree2e":"webdriver-manager update --proxy 'http://localhost:7890/' --ignore_ssl",
"e2e": "ng e2e",
注意:将localhost
换成自己的代理服务器地址,将7890
换成自己代理服务器的端口。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。