angular-cli: ng e2e does not use --proxy-config for webdriver-manager update
Bug Report or Feature Request (mark with an x
)
- [x] bug report -> please search issues before submitting
- [ ] feature request
Versions.
@angular/cli: 1.0.0 node: 6.10.1 os: win32 x64 @angular/common: 4.1.2 @angular/compiler: 4.1.2 @angular/core: 4.1.2 @angular/forms: 4.1.2 @angular/http: 4.1.2 @angular/platform-browser: 4.1.2 @angular/platform-browser-dynamic: 4.1.2 @angular/router: 4.1.2 @angular/cli: 1.0.0 @angular/compiler-cli: 4.1.2
Repro steps.
- Must have an out of date web driver or delete it from
node_modules/protractor/node_modules/webdriver-manager/selenium/
. For example, if using Chrome webdriver, delete allchrome*
files in this selenium folder. - Must be behind a proxy, but without HTTPS_PROXY or https_proxy environment variables set.
- Using the proxy guide described in the cli wiki, create a
proxy.conf.js
file to pass tong e2e
. - Run
ng e2e --proxy-config proxy.conf.js
.
If you are behind a proxy and https_proxy is not set, the command will fail after compiling the app. This is because by default, ng e2e
will run webdriver-manager update
to fetch the right browser drivers, but does not use the proxy config to do so.
The log given by the failure.
$ ng e2e --proxy-config proxy.conf.js
** NG Live Development Server is running on http://localhost:49152 **
Hash: 95e0fe13c75ed4802b8b
Time: 17998ms
chunk {0} 0.chunk.js, 0.chunk.js.map 491 kB {3} [rendered]
chunk {1} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 237 kB {5} [initial] [rendered]
chunk {2} styles.bundle.js, styles.bundle.js.map (styles) 226 kB {5} [initial] [rendered]
chunk {3} main.bundle.js, main.bundle.js.map (main) 8.25 kB {4} [initial] [rendered]
chunk {4} vendor.bundle.js, vendor.bundle.js.map (vendor) 3.12 MB [initial] [rendered]
chunk {5} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]
webpack: Compiled successfully.
events.js:160
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED 172.217.8.16:443
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
Desired functionality.
ng e2e
should pass along proxy configuration to webdriver-manager when the --webdriver-update
flag is set to true. For webdriver-manager, the flag to use is --proxy
.
Mention any other details that might be useful.
The code that calls webdriver-manager is at Line 65 in e2e.ts.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 20
- Comments: 23 (2 by maintainers)
Hi, I am trying to run e2e tests with an API behind a reverse-proxy. The API is accessible fine when I run
ng serve --proxy-config proxy.conf.json
. Butng e2e --proxy-config proxy.conf.json
complains as follows:I belive that there are 2 different issues discussed here… What the issue creator is requesting is to reuse the --proxy-config (eg. all requests to “/api/***” is proxied to localhost:8080)
this has nothing to do with “pree2e”:“webdriver-manager update --proxy ‘http://********:8080/’ --ignore_ssl”,
Right?
Any updates ?
It seems like
ng e2e
takes now the proxy configuration fromng serve
. If you add following line in the angular.json file and runng e2e
without any options it will execute with the proxy configurations.But this is a step backwards. If you have multiple environments and therefore multiple proxy configurations you have to change everytime your angular.json file accordingly before running
ng e2e
.How are you running your e2e-tests if having a api behind a reverse-proxy if
ng e2e --proxy-config proxy.conf.json
is not working?
Hello, any updates with it?
It worked for me (below) as webdriver not taking npm proxy settings and it downloads the driver from googleapis link So we need to set it in package.json and run ng e2e
In package.json, downgraded the protractor version from 5.1.2 to 5.1.1
Added a “pree2e” step as follows in package.json
“pree2e”:“webdriver-manager update --proxy ‘http://********:8080/’ --ignore_ssl”, “e2e”: “ng e2e”,
Run npm install.
Run npm run e2e
any update?
webdriver-manager update
respectsHTTPS_PROXY
environment variable. Try to setupHTTPS_PROXY
environment variable with your (corporate) proxy serverhttp://********:80
Restart your VS Code or command prompt (to pickup changes) and you should be fine to run e2e tests without issues.@SidV7 I faced the same issue after the manual webdriver update. You have to run the e2e without updating the webdriver again as @filipesilva suggested. This worked for me:
I have no update on this but would like to mention you can do the update manually with the flags you need to use and then run
ng e2e --webdriver-update=false
to preventng e2e
from trying to update webdriver.Any updates on this?
any update? Thanks