¿Cómo configura el puerto y el host para el comando ng e2e usando un archivo de configuración?
Soy consciente de que es posible usar la siguiente declaración en la línea de comando
ng e2e --port <port number> --host <host> Esto funciona bien, pero sería más conveniente configurar el puerto y la dirección en el archivo de configuración. Miré dentro .angular-cli.json y descubrí que hay un archivo llamado protractor.config.js , no he podido averiguar qué configuración usar en ese archivo, hay una configuración de baseUrl , pero cambiar eso sí no hace ninguna diferencia en el puerto que usa el comando ng e2e . Parece estar usando un puerto aleatorio.
Aparte de baseUrl , también he intentado configurar port y seleniumPort pero no hacen ninguna diferencia.
Después de ingresar el comando ng e2e , aparece el siguiente resultado en la consola
** NG Live Development Server is running on http://localhost:49155 ** En protractor.config.js tengo baseUrl configurado como http://localhost:50000 . He observado la ejecución de las pruebas y puedo ver que el navegador está usando la dirección http://localhost:49155 que no es la dirección que deseo.
ng --version devuelve lo siguiente
@angular/cli: 1.0.0
nodo: 7.7.1
sistema operativo: win32 x64
@angular/común: 4.0.3
@ angular/compilador: 4.0.3
@ angular/núcleo: 4.0.3
@angular/formularios: 4.0.3
@angular/http: 4.0.3
@angular/plataforma-navegador: 4.0.3
@angular/plataforma-navegador-dinámico: 4.0.3
@angular/enrutador: 4.0.3
@angular/cli: 1.0.0
@angular/compilador-cli: 4.0.3
Configure el host y el puerto en angular.json modificando el proyecto webapp-e2e , por ejemplo:
"e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { "protractorConfig": "./protractor.conf.js", "devServerTarget": "webapp:serve", "port": 4201 }Esto anulará el puerto que se utiliza una vez que angular-cli invoque webapp:serve-command. Olvídese del archivo protractor.conf.js: no se usa hasta más adelante en el proceso.
Por lo tanto, puede ejecutar ng serve --watch (para pruebas unitarias y de servicio) y ng e2e (para pruebas e2e) de forma independiente o en paralelo.
Hermano, Jens
No he visto una configuración para el puerto en el que se ejecuta el servidor de desarrollo cuando se ejecuta ng e2e
su mejor apuesta es probablemente un script NPM: https://docs.npmjs.com/misc/scripts
"e2e":"ng e2e --port <port number> --host <host>" a package.json en scriptsnpm run e2e , esto ejecutará el script e2e en package.json , en este caso su ng e2e --port <port number> --host <host>No es un archivo de configuración, pero funciona como tal.
Descubrí que cuando llamamos al comando ng e2e , el servidor de desarrollo se ejecutará de forma predeterminada en http://localhost:49152/
Para poder especificar el puerto y el host para ng e2e usando la configuración, usaremos la propiedad baseUrl en el archivo protractor.conf.js . Necesitaremos:
ng e2e , por lo que Protratcor se comunicará con baseUrl directamente Por ejemplo:
baseUrl:'http://localhost:8088'ng serve --port 8088ng e2e --serve false También hay otra maniobra en la que no usamos baseUrl . solo necesitamos:
- en shell 1 ejecute: ng serve --port 4200
- en shell 2 ejecute: ng e2e --serve false --base-href=http://localhost:4200