web-dev-qa-db-ja.com

構成を使用してng e2eのポートとホストを指定する方法

構成ファイルを使用して、ng e2eコマンドのポートとホストをどのように設定しますか?

コマンドラインで次のステートメントを使用できることを認識しています

ng e2e --port <port number> --Host <Host>

これはうまく動作しますが、構成ファイルでポートとアドレスを設定する方が便利です。 .angular-cli.jsonの中を調べたところ、protractor.config.jsというファイルがあることがわかりました。そのファイルで使用する設定がわかりません。baseUrl設定があります。ただし、これを変更しても、ng e2eコマンドで使用されるポートに違いはありません。ランダムなポートを使用しているようです。

baseUrl以外に、portseleniumPortの設定も試みましたが、違いはありません。

ng e2eコマンドを入力すると、コンソールに次の出力が表示されます

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

protractor.config.jsでは、baseUrlhttp://localhost:50000に設定しています。テストの実行を観察したところ、ブラウザがアドレスhttp://localhost:49155を使用していることがわかります。これは、希望するアドレスではありません。

ng --versionはフォローインを返します

@ angular/cli:1.0.0
ノード:7.7.1
os:win32 x64
@ angular/common:4.0.3
@ angular/compiler:4.0.3
@ angular/core:4.0.3
@ angular/forms:4.0.3
@ angular/http:4.0.3
@ angular/platform-b​​rowser:4.0.3
@ angular/platform-b​​rowser-dynamic:4.0.3
@ angular/router:4.0.3
@ angular/cli:1.0.0
@ angular/compiler-cli:4.0.3

13
user7237069

ng e2eの実行時に、開発サーバーが実行されるポートの構成を確認していません

あなたの最善の策はおそらくNPMスクリプトです: https://docs.npmjs.com/misc/scripts

  1. scriptsの下の"e2e":"ng e2e --port <port number> --Host <Host>"package.jsonに追加します
  2. npm run e2eを実行してスクリプトを使用します。これにより、e2eでスクリプトpackage.jsonが実行されます。この場合はng e2e --port <port number> --Host <Host>

設定ファイルではありませんが、同じように機能します。

11
Ahmed Musallam

プロジェクトangular.jsonを変更して、webapp-e2eにホストとポートを設定します。例:

"e2e": {
  "builder": "@angular-devkit/build-angular:protractor",
  "options": {
    "protractorConfig": "./protractor.conf.js",
    "devServerTarget": "webapp:serve",
    "port": 4201
  }

これにより、angular-cliによってwebapp:serve-commandが呼び出されると、使用されているポートが上書きされます。 protractor.conf.jsファイルは忘れてください-プロセスの後半まで使用されません。

したがって、ng serve --watch(検索および単体テストの場合)およびng e2e(e2eテストの場合)を独立して、または並行して実行できます。

br、イェンス

6

baseUrlプロパティはどういうわけかprotractor.config.jsでは機能しませんが、同じconfig.jsのonPrepareメソッドでプログラムによってプロパティを設定できます

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

私はこのソリューションをAngular 1.xで使用していますが、Angular 2/4

4
Wenhua Yan

コマンドng e2eを呼び出すと、開発サーバーはデフォルトで http:// localhost:49152 / で実行されることがわかりました

設定を使用してng e2eのポートとホストを指定できるようにするには、protractor.conf.jsファイルのプロパティbaseUrlを使用します。次のことを行う必要があります。

  • アプリを個別に提供する
  • 次に、ng e2eを呼び出すときにserve =falseに設定するため、ProtratcorbaseUrlと直接通信します

例えば:

  • まず、protractor.conf.jsに配置する必要があります。
    baseUrl:'http://localhost:8088'
  • コマンドを実行します。
    ng serve --port 8088
  • 別のシェルでテストを実行します。
    ng e2e --serve false

baseUrlを使用しない別の操作もあります。次のことだけが必要です。
-シェル1で実行:ng serve --port 4200
-シェル2で実行:ng e2e --serve false --base-href=http://localhost:4200

4
Taha EL BOUFFI