Angularのe2eテスト(Protractor)でng serveとは別のURLにアクセスさせる方法
やりたかったこと
ある日私はこう思いました。
ng serve
をするとlocalhost:4200
でAngularアプリケーションが起動するけど、間に別の機構を挟んでいるのでテストはlocalhost:4202
(=別のurl)で実行して欲しい!と。
というのも、デフォルトではng e2e
を走らせるとng serve
が自動で実行され、その後serveで立ち上がったアドレスでテストが始まるのです。今回はこの問題を解決するために行った
1. e2eを実行するbaseUrlを変更する
2. ng e2eでserveを実行しない設定をする
の2ステップに必要な手順をまとめていきます。
baseUrlを設定する
まずはじめに、e2eの設定が記載してあるprotractor.conf.js
を開きます。その中の
baseUrl: 'http://localhost:4202/',
をお好みのurlに変更します。
ng e2eでserveを実行しない設定をする
こちらの2018年のangular-cliのissueを参考にangular.json
に以下の内容を追加し、
...
"<my-project>-e2e": {
...
"architect": {
"e2e": {
...
"configurations": { // ココ
"noserve": {
"devServerTarget": ""
}
}
},
...
}
}
...
ng e2e --configuration=noserve
でテストを起動します。
この時、テストコマンドを走らせる前に自分でng serve
するのを忘れないようにしてください。これで、無事テストがlocalhost:4202で立ち上がるようになります
ちなみに、2017年のangular-cliのissueによればng e2e
の代わりにng e2e --no-serve
とするだけで良いとのことでしたが、現在はただオプションをつけるだけではうまくいきません。(少なくとも私の手元ではできませんでした)
こうして初めて画面テストを書いてみていますが、
個人的には単体テストよりもするする書けるので楽しめています。
書いたことのない人もぜひ挑戦してみてください!
最後まで目を通していただきありがとうございました
Author And Source
この問題について(Angularのe2eテスト(Protractor)でng serveとは別のURLにアクセスさせる方法), 我々は、より多くの情報をここで見つけました https://qiita.com/rena_m/items/de6b53530da5108bc0b5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .