5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【失敗談】AmplifyのCI/CDにPlayWright(E2Eテストツール)は乗せられないっぽい

Posted at

はじめに結論

おとなしくCypressを使っておけ!!!

隙あらば自分語り

あけましておめでとうございます、やぐちはるおと申します。最近SIerを退職して起業しました。
起業先でしこしこアプリを作っていますが、タイトルの通り失敗したので内容を共有します。
この記事を見た出来杉君が解決策を提示してくれるのを待っています。それだけが私の望みです。

前置き

軽くAmplifyとPlayWrightについて触れておきます。

AWS Amplifyとは

AWS Amplifyはアプリ開発のためのツールで、AWSの認証やAPI、ホスティングサービスを
一言管理できるサービスになっています。これを使うことで、AWSの各サービスを一つ一つ
細かく調べなくても(※1)、簡単に(※2、※3)アプリに機能を追加することができます。

※1 嘘です。結局調べる必要があります。
※2 嘘です。AWS慣れていないと難しいです。
※3 個人の感想であり、効果・効能を示すものではありません。

FirebaseやSupabaseを知っていれば、それのAWS版だと思ってください。
最近はローコード向けのツールも提供されているので、本当に簡単になっているのかもしれません。

参考

AWS Amplify Studio – 最小限のプログラミングでFigmaからフルスタックのReactアプリを実現
【多分初心者向け】AWS Amplify Studio に触ってみて、とりあえず1からwebページを作ってみた

PlayWrightとは

Microsoftが開発したE2Eテスト用のツールです。これを適切に設定することで(※4)
ページにアクセスしてログインするとか、マイページに遷移したときの画面が崩れてないかとかを
自動でテストすることができるようになります。

本題

AmplifyはGitHubなどのリポジトリと連携して、ソースコードが更新されたら
Webページに更新がかかるような設定が可能になっています。以下のような設定画面になります。
image.png
ソースコードの変更を検知すると「プロビジョン → ビルド → デプロイ → 検証」というように
処理が流れていきますが、このビルドとデプロイの間に「テスト」を挟むことができます。
そしてPlayWrightを挟んだら見事処理が落ちました。
image.png

失敗 その1 PlayWright をインストールしようとしてタイムアウト

エラー文を見てみるとPlayWrightをインストールしている途中で落ちているっぽいです。
いろんな記事をググってみても時間がかかることに言及されています。
image.png

PlayWright を使ってE2Eテストを書いてみた
Chromium, Firefox, WebKit のダウンロードが行われるため、結構時間かかります。

Playwrightも知らないで開発してる君たちへ
あと個人的にはnpm installがやたら長かったことも気になりました。。
firefoxとsafariのインストールに時間がかかってました。

書いてあるとおりなんですが、つまるところいろんなブラウザでテストできるようにダウンロードが走って
そのダウンロードにやたらめったら時間がかかってAmplifyの30分という制限時間を過ぎてしまいます。

失敗 その2 インストールするブラウザを減らしたけどタイムアウト

ブラウザのダウンロードに時間がかかるならブラウザをダウンロードしなければいいじゃない
って古事記に書いてあるってアメリカの研究所が発表してるってNHKで放送してたって誰かが言ってたので
ブラウザをダウンロードしないでPlayWrightをインストールしてみます。

PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 yarn add -D @playwright/test

こうするとPlayWrightのインストールは通りました。
image.png
しかしブラウザが無いと何もテストできないので、この上でchromiumだけインストールします。ややこしい。

yarn add -D playwright-chromium

結果は……
image.png
ここまで言って30分が過ぎタイムアウトで落ちました。もう俺はほんと何やってもダメ。

結論

おとなしくCypressを使っておけ!!!

PlayWrightはブラウザのインストールにめっちゃ時間かかるからCI/CDに乗っけるもんじゃなさそう。
というかソースコード更新するたびデプロイまでに30分以上かかるCI/CDは存在してはいけない生き物だ。

そもそもドキュメントなどを見てると基本的にCypress使うことを想定してあるっぽいので
おとなしくCypressを使うのが良さそうです。そこんとこよろしく。

あとがき

Amplify + Next.js 使った開発を日々つぶやいていますので良かったらtwiiterフォローしてくだちい。
https://twitter.com/haruo2177

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?