OSSメンテで画像回帰テストを運用する。Mac依存をやめ、正解画像をCIだけで更新した
DRANK
OSSで画像回帰テストを運用するとき、難しかったのは画像を撮ることではありませんでした。「誰の環境で撮った画像を正解にするか」です。私がメンテしているIonic向けテーマで、Macから更新した正解画像と、GitHub ActionsのLinuxで撮影した画像が100%一致しませんでした。コードとChromiumのversionが同じでも、文字の輪郭などに小さな差が出ます。そこで許容率を上げるのではなく、repositoryへcommitする正解画像は、共通のLinux containerだけで生成することにしました。実際に、意図した変更を画像差分として検出できた実例は、iOS26テーマのPR #131です。このPRでは、Inset ListをまたぐRadio Groupを正しく表示する要素をデモへ追加しました。コード上は意図した変更ですが、保存済みの正解画像には存在しないため、画像回帰テストは正しく失敗します。左が変更前のExpected、右がPRのActualです。Playwrightが生成したDiffでは、追加した領域が赤く表示されます。これは壊れたのではなく、デモとテーマを意図して変更した結果です。画像回帰テストは差分を示しますが、それを新しい正解として採用するかは、PRをレビューする人間が判断します。PRへ/update-screensh…