Slide 1

Slide 1 text

StotybookからはじめるVRT -個人開発編- arrow2nd / E2Eテスト自動化の事例4選 ~Playwright活用編~

Slide 2

Slide 2 text

arrow2nd といいます あろーって読むことが多いです ちょっと株式会社 で フロントエンドエンジニアをしています 自己紹介

Slide 3

Slide 3 text

ab つくっているサービスについe Wb StorybookのVRTを導入したのはなぜ b Playwrightを選んだ理由は Çb 実例と工夫したとこÁ `b 導入してみe Tb さいごに 流れ

Slide 4

Slide 4 text

「個人開発」の話です! chot Inc. のプロダクトではありません

Slide 5

Slide 5 text

つくっている サービスについて

Slide 6

Slide 6 text

サービスについて ️ yondako.com よんだことをわすれないための 読書記録サービス コミュニティ機能などがなく、 読書状況の記録に特化

Slide 7

Slide 7 text

サービスについて 2024年5月 から開発をはじめて、8月にリリース 7月〜8月がピークでガッとつくった

Slide 8

Slide 8 text

StorybookのVRTを 導入したのはなぜ?

Slide 9

Slide 9 text

動機 T デザイン頑張ったので壊れてほしくな3 T 個人開発なのでかけられる時間に限りがあ) T コンポーネントや関数の単体テストだけじゃ心許ない → 時間をかけずに導入できて、かつ効果もそれなりにある テストがほしい……

Slide 10

Slide 10 text

それ、StorybookのVRTかも 2 既にStorybookを導入していた 2 1つのテストファイルで、全ての
 コンポーネントのVRTができる 2 最低限、コンポーネントの見た目は守って くれる

Slide 11

Slide 11 text

Playwrightを選んだ 理由は?

Slide 12

Slide 12 text

ツールを増やしたくなかった P Playwright はどうせ使うつもりだっ( 2 E2E テストも書いていく予& 2 今後に足掛かりにもなる P VRT に必要な「撮影・比較・差分出力」は Playwright のみで可r 2 できるならこれでいいんじゃない?の気持ち

Slide 13

Slide 13 text

テストが遅くなったときも安心 4 分割実行のサポートが手厚0 ) Actionsのサンプルもある 4 テストレポートのマージ機e ) npx playwright merge-reports https://playwright.dev/docs/test-sharding

Slide 14

Slide 14 text

実例と工夫したところ

Slide 15

Slide 15 text

撮影→比較の流れ I% index.jsonからコンポーネントの情報 を取# !% ループで各コンポーネントを撮 % 保存済みの画像と比較 https://github.com/yondako/yondako/ blob/66f545bac09f4a714601cf33f85b42c34dce4aed/.storybook/stories.spec.ts

Slide 16

Slide 16 text

テストの失敗を減らす工夫

Slide 17

Slide 17 text

詳しくは… https://github.com/yondako/yondako

Slide 18

Slide 18 text

導入してみて

Slide 19

Slide 19 text

安心してTailwindの更新ができた codemodとちょっとの手直しで移行はできたけど怖8 g 設定ファイルがCSSになっB g 一部のカラートークン名が変更されてる → どっか壊れてそう……

Slide 20

Slide 20 text

安心してTailwindの更新ができた

Slide 21

Slide 21 text

安心してTailwindの更新ができた 安心・・・

Slide 22

Slide 22 text

テストレポートはデプロイすべきかも Artifactに保存して、手元で確認するようにしてい2 % 確認する手間が結構つら9 % 「まぁ、大丈夫か…」で見なくなってしまう (なった) → つらくなったらWeb上で確認できる環境をつくると良さそう

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

️ https://zenn.dev/chot/articles/cbb5e8fb6711f8

Slide 25

Slide 25 text

さいごに

Slide 26

Slide 26 text

さいごに T VRTは最小限でもあると安5 Q 人間だと自分が変更した範囲の確認に留まってしまいが Q 仕組みで守ってあげることで思わぬ差分を検知できる T まずはStorybookからはじめてみませんm Q 前提のハードルがちょっとあるけど、導入しやすく、効果もあ„ Q 様子を見て、ページのVRTやE2Eテストと徐々に広げていくのも よさそう

Slide 27

Slide 27 text

宣伝です!

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

ありがとうございました!