2017-04-23 66 views
5

如何使用配置文件爲ng e2e命令設置端口和主機?如何使用配置爲ng e2e指定端口和主機

我知道,這是可以使用下面的語句在命令行

ng e2e --port <port number> --host <host> 

這工作得很好,但它會設置端口和地址的配置文件中更加方便。我查看了.angular-cli.json,發現有一個名爲protractor.config.js的文件,我一直無法弄清楚在該文件中使用的設置,有一個baseUrl設置,但更改該設置對端口沒有任何影響由ng e2e命令使用。它似乎在使用隨機端口。

除了baseUrl我也嘗試設置portseleniumPort但他們沒有區別。

在控制檯

** NG Live Development Server is running on http://localhost:49155 ** 

protractor.config.js進入ng e2e命令以下輸出出現在後我有baseUrl集作爲http://localhost:50000。我觀察到測試正在執行,我可以看到瀏覽器使用的地址是http://localhost:49155,這不是我所希望的地址。

ng --version返回跟隨着

@角/ CLI:1.0.0
節點:7.7.1
OS:win32的64
@角/共同:4.0.3
@角/編譯器:4.0.3
@角/芯:4.0.3
@角/形式:4.0.3
@角/ HTTP:4.0.3
@angu LAR /平臺的瀏覽器:4.0.3
@角/平臺的瀏覽器的動態:4.0.3
@角/路由器:4.0.3
@角/ CLI:1.0.0
@角/反編譯CLI:4.0.3

+1

你這是什麼意思是*「用於'ng e2e'命令」*?您是在談論運行selenium的端口,還是要查找正在運行的應用程序的端口?後者你可以使用'baseUrl'改變。你能顯示你得到的輸出嗎? – jonrsharpe

+0

@jonrsharpe我正在談論應用程序運行的端口。輸出的第一行是'** NG Live Development Server正在運行在http:// localhost:49155 **'上,但我已經將'baseUrl'設置爲'http:// localhost:50000' – user7237069

+0

這是端口'ng serve'正在運行,當然,不一定是'ng e2e'正在尋找什麼? – jonrsharpe

回答

6

我還沒有看到運行ng e2e

當在開發服務器上運行的端口配置您最好的選擇可能是一個NPM腳本:https://docs.npmjs.com/misc/scripts

  1. 添加"e2e":"ng e2e --port <port number> --host <host>"package.jsonscripts
  2. 使用腳本運行npm run e2e,這將在package.json運行腳本e2e,在這種情況下,你ng e2e --port <port number> --host <host>

它不是一個配置文件,但它的工作原理就像一個。

2

baseUrl屬性莫名其妙地不能在protractor.config中工作。JS,但你可以通過編程設置onPrepare方法屬性在同一config.js

{ 
    onPrepare() { 
     browser.baseUrl = 'http://localhost:4200/'; 
    }, 
} 

我一直在使用1.x的角度這個解決方案,目前仍然可以工作角2/4

+0

我'我也注意到了這一點;當使用Angular CLI'ng e2e'命令時,出於某種原因baseUrl被覆蓋。 – Willwsharp

+0

我無法找到任何地方的'protractor.config.js'文件,因爲它顯然已在最新版本中重命名爲'protractor.conf.js'。 –

相關問題