1

在使用anguar进行端对端的测试时angular会自动对webdriver-manager进行更新,而此时如果我们的网络不支持连接该更新的服务器,则将提示E/downloader - read ECONNRESET,最终导致e2e测试无法启动。

笔者尝试成了以下两种设置代理解决办法,分享如下。

前提:需要一个可以浏览外网的代理。

设置IDE代理法

如果你使用的的具有设置代理功能的IDE,并且该IDE支持设置代码,比如笔者使用的为webstorm,则可以打开相应的代码设置界面,设置以下信息:
image.png

点击Check connection后输入:https://chromedriver.storage.googleapis.com/

image.png

提示连接成功则代理设置正确。然后打开webstorm的控制台,执行ng e2e即可启动集成测试:

image.png

手动添加命令法

如果你没有使用具有代码功能的IDE,或是你就想在原生的shell中启动angular的集成测试,那么也可以参考以下方法:

  1. 打到项目的package.json
  2. 在e2e命令前加入"pree2e":"webdriver-manager update --proxy 'http://localhost:7890/' --ignore_ssl",
  3. 使用npm install进行安装
  4. 使用npm run e2e

此时,该命令也会为我们启动代理来进行更新。

"pree2e":"webdriver-manager update --proxy 'http://localhost:7890/' --ignore_ssl",
"e2e": "ng e2e",

注意:localhost换成自己的代理服务器地址,将7890换成自己代理服务器的端口。


潘杰
3.1k 声望239 粉丝