Ruby on Rails

Capybara/Poltergeist/rmagickを利用して改定前後の画面キャプチャが同一であることをテストする

環境

Ruby 2.4.1
Rails 4.2.9
capybara 2.15.1
poltergeist 1.16.0
rmagick 2.16.0

マイグレーションプロジェクトなど、コードの中身はガラっと変わるけど画面としての見た目は変わらないことを担保したい場合がある。

rspecだけを単純に利用してresponse.bodyをhtmlレベルで比較して確認することもできるが
htmlやjsの構造が変わってしまうと「画面の見た目は一緒だけどhtml構造が変わっている」とか普通にある話なので、今回は画面のキャプチャで比較したい。

例えば
id/pw入力欄とログインボタンがあるようなログイン画面を表示→ログインする→トップページが同一であることを確認したいとき、

spec/support/image_utilities.rb

spec/features/sample_spec.rb

上記を実行すると
tmp/capybara/before
tmp/capybara/after
にキャプチャが作成され、そのキャプチャを元に画像をrmagickで比較することができる。
上記は画面のフルスクロールキャプチャをバイナリで比較している。
Poltergeistやrmagickの細かいオプションは公式やgemのページを参照。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です