構成ファイルを使用して、ng e2e
コマンドのポートとホストをどのように設定しますか?
コマンドラインで次のステートメントを使用できることを認識しています
ng e2e --port <port number> --Host <Host>
これはうまく動作しますが、構成ファイルでポートとアドレスを設定する方が便利です。 .angular-cli.json
の中を調べたところ、protractor.config.js
というファイルがあることがわかりました。そのファイルで使用する設定がわかりません。baseUrl
設定があります。ただし、これを変更しても、ng e2e
コマンドで使用されるポートに違いはありません。ランダムなポートを使用しているようです。
baseUrl
以外に、port
とseleniumPort
の設定も試みましたが、違いはありません。
ng e2e
コマンドを入力すると、コンソールに次の出力が表示されます
** NG Live Development Server is running on http://localhost:49155 **
protractor.config.js
では、baseUrl
をhttp://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-browser:4.0.3
@ angular/platform-browser-dynamic:4.0.3
@ angular/router:4.0.3
@ angular/cli:1.0.0
@ angular/compiler-cli:4.0.3
ng e2e
の実行時に、開発サーバーが実行されるポートの構成を確認していません
あなたの最善の策はおそらくNPMスクリプトです: https://docs.npmjs.com/misc/scripts
scripts
の下の"e2e":"ng e2e --port <port number> --Host <Host>"
をpackage.json
に追加しますnpm run e2e
を実行してスクリプトを使用します。これにより、e2e
でスクリプトpackage.json
が実行されます。この場合はng e2e --port <port number> --Host <Host>
設定ファイルではありませんが、同じように機能します。
プロジェクト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、イェンス
baseUrlプロパティはどういうわけかprotractor.config.jsでは機能しませんが、同じconfig.jsのonPrepareメソッドでプログラムによってプロパティを設定できます
{
onPrepare() {
browser.baseUrl = 'http://localhost:4200/';
},
}
私はこのソリューションをAngular 1.xで使用していますが、Angular 2/4
コマンドng e2e
を呼び出すと、開発サーバーはデフォルトで http:// localhost:49152 / で実行されることがわかりました
設定を使用してng e2eのポートとホストを指定できるようにするには、protractor.conf.js
ファイルのプロパティbaseUrl
を使用します。次のことを行う必要があります。
ng e2e
を呼び出すときにserve =falseに設定するため、ProtratcorbaseUrl
と直接通信します例えば:
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