概要
アプリケーションを作ってごりごりシステムスペックを書いているわけですが。
テストコードはちゃんとテストとして成立しているかチェックしながら書いていくことが多いと思います。
そこでcapybaraを使った統合テストでは、failedが出るとスクリーンショットを取ってくれます。
このスクリーンショットと照合しながらテストコードの性能をチェックしていくことになるのですが・・・
しかしこのスクリーンショット、デフォルトだと小さい!
画面の下の方にリンクを置いてるのに上の方しか表示されねえ!
ってことで、設定方法をまとめとこうかなと思います。
設定方法
spec/spec_helper.rb
require 'capybara/rspec'
Capybara.register_driver :selenium_chrome_headless do |app|
options = Selenium::WebDriver::Chrome::Options.new
[
"headless",
# ここの倍率を変更すれば、スクリーンショットサイズが変わります。
"window-size=2880x2000",
"disable-gpu" # https://developers.google.com/web/updates/2017/04/headless-chrome
].each { |arg| options.add_argument(arg) }
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
RSpec.configure do |config|
....
(省略)
コメントアウトにも書いてますが、倍率を変更すればスクリーンショットのサイズが変わります。
ちなみに2880x2000はかなり大きいです。
諸事情により、大きめのサイズでテストしたかったので変えました。
結構カジュアルに設定を変えることができるのも魅力かなと思います。
ちなみに
Mac bookProのRetinaディスプレイで1680x1050くらいらしいですよ