🍎

iOSシミュレータも使ったVRTとGitHub Actions小ネタ

2023/12/05に公開

この記事は、Lancers(ランサーズ) Advent Calendar 2023 の6日目の記事です。

概要

ここで話すVRT(Visual Regression Testing)はStorybook + storycap + reg-cliを使った方法に対してさらにiOSのSafariブラウザ上でもテストができるようにするためにしたことを記載します。

UIの実装でブラウザのデフォルトのスタイルが表示されてしまってブラウザごとにスタイルが異なることがあると思います。

ios_vrt_result

その他、GitHub ActionsのWorkflowを活用してみたら色々活用できそうというのが見えてきたので諸々解説していきたいと思います。

ソースコード

https://github.com/igara/vrt_sample

GitHub Actions

今回は追加していないのですがChroniumとiOSで比較するWorkflowというのがあってもいいかもしれませんね。

Workflowの実行

実行タイミングを workflow_dispatch にしているのでActionsのUIから実行します。

workflow_dispatch

Run workflowから比較対象のブランチやハッシュ、タグからでも実行可能なので導入が早ければ大昔のと最新の差分をソースコードではなくビジュアル的に可視化することも使い方によっては可能になると思います。

実行が完了するとActionsのArtifactsにVRTの結果のレポートをダウンロードできるようになります。

artifacts

ActionsのArtifactsは保存できる期間が決まっているのでレポート出力後にreleases機能でGitのタグを作るついでにVRTのレポート結果も一緒にアップロードしてあげるといいかもしれません。

https://github.com/igara/vrt_sample/releases/tag/20231205-02

releases

問題点・まとめ

iOSの実行時間かかるのとたまにメモリの問題で失敗することがあります。メモリに関しては通常のVRTでもたまにあるので要チューニングなとこあります。

Actionsで実行させる前に自分のローカル環境でもiOSのVRT実行できるように開発環境を進めたのですが、Appiumを動かす環境を作るのが手間だったというのがありました。

appium-doctor --ios が通ることが最小限ですがiOSシミュレータのSafariを使用するぐらいなら appium-safari-driver を使えば良いという結論になったのも情報が少ないながらも頑張ったなと思いました。

シミュレータ起動して作成したStoryのものが画面に表示したときは感動しました。

GitHubで編集を提案

Discussion