8
8

More than 1 year has passed since last update.

【Capybara】Rails rspecシステムテストのScreenshot全画面表示設定

Last updated at Posted at 2019-10-31

概要

アプリケーションを作ってごりごりシステムスペックを書いているわけですが。
テストコードはちゃんとテストとして成立しているかチェックしながら書いていくことが多いと思います。

そこで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くらいらしいですよ

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8