【Playwright】E2EテストをするためにPlaywrightを使ってみた
こんにちは。
突然ですが、フロントエンドのテストってやっていますか?
単体テスト、E2Eテスト、その他いろいろありますが、私自身あまりテストとは馴染みがありませんでした。
というのも私が元々HTMLのマークアップから始めた人間ですのでテストという概念すら最初は知らなかったのです。
ですが、最近は静的なWebサイトだけでなくネイティブのアプリやWebアプリに関わっていることでテストの重要性をとても感じているのです。
そこで今回はE2Eテストに焦点を当てて、改めて環境を整えてみようと思います。
今回使用するライブラリはMicrosoft社によって作られ最近目にすることも多くなったPlaywright
を使用してみたいと思います。
かつてのCypress
など有名どころよりもどうやら動作が速いらしいのです。
Playwright
ドキュメントを見てみると一つのAPIで複数のブラウザのテストをできるみたいですね。
あとはとにかく速いとのこと。
最近のモダンな環境ではこれ一択になってそうですね。
Microsoftが作っているということで、VScodeとも相性が良さそうです。
Fast and reliable end-to-end testing for modern web apps | Playwright
環境
今回私は以下の環境で試しています。
適宜コマンド等は自身の環境に合わせてください。
よほどの違いがなければ動くはず…
- Node.js
- v20.11.1 LTS
- TypeScript
- v5.2.2
- Playwright
- v1.42.1
インストール
それではやっていきましょう。
テスト用にまずはプロジェクトを作成します。
今回はVite + TypeScript
を使用します。
プロジェクトが作成できたら早速Playwrightを導入しましょう。
上記のコマンドを実行すると対話形式で設定をしていきますのでご自身の環境に合わせて設定してください。
今回はすべてデフォルトでやってみます。
インストールが完了したら以下のファイル群が追加されていると思います。
最初のテスト
サンプルのテストがありますのでとりあえず一度実行してみましょう。
テストが成功すれば以下の内容が出力されます。
これで初めてのテストが完了しました!
今度は一つ失敗させて見ましょう。
変更したらもう一度テストを走らせて見ましょう。
エラー文が表示されてレポートが自動で起動したかと思います。
分かりやすい…
レポートの表示
テストが完了した時に、レポートを作成することができます。
こんな感じでレポートが表示されます。
めちゃくちゃ便利ですね。
UIモード
さらにPlaywrightにはUIモードという物が実装されていて、実際に画面を触りながらどこでテストが失敗しているのかなどの情報をGUIで確認することができます。
これはすごく便利で初心者の私でも直感的に触って実装することができました。
UIモードで立ち上げるには以下のコマンドです。
テストコードを書く際はこのUIモードを使用して、サクッとテストを走らせたい場合はCLIを使用してという使い分けができます。
その他細かな使用方法
特定のファイルのみをテストする
これまで書いてきたテストはすべてのファイルをテストするようになっていますが、任意のファイルのみをテストするには以下のコマンドです。
こちらのコマンドではファイルのパスを入力することで特定のファイルのみテストを実行できます。
特定のブラウザのみでテストをする
デフォルトではChromium
、firefox
、webkit
の3つのブラウザで実行されます。
普段はそのまま3つのブラウザでやるけど、今回だけは特定のブラウザのみでテストしたいという場合もあると思います。
そのときは以下のコマンドです。
こちらでchromium
一つだけでテストを実行することができます。
もし普段から3つでなくてもOKという場合はconfigファイルから変更もできます。
まとめ
今回は初めてのE2Eテストというコンセプトでまずはテスト環境を作成して初めてのテストを通すところまで実施しました。
まだまだ奥が深く、設定ファイルの内容だったり、さらにはモックを使ってテストを行ったりなど、できることはたくさんあります。
また随時学習したら記事にしていきたいと思っていますので、そのときはまたご覧ください。