@ledsun blog

無味の味は佳境に入らざればすなわち知れず

RailsのminitestのシステムテストをヘッドレスChromeで実行する

test/test_hlelper.rbで次のように設定してもヘッドレスモードになってくれませんでした。

Capybara.default_driver = :selenium_chrome_headless
Capybara.register_driver :selenium_chrome_headless do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_argument('--headless')
  options.add_argument('--no-sandbox')
  options.add_argument('--disable-gpu')
  options.add_argument('--window-size=1280,1024')

  Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end

test/application_system_test_case.rbでdriverを設定しているからでした。

require "test_helper"

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
end

つぎのようにheadless_chromeを指定すれば、ヘッドレスモードで実行されます。

require "test_helper"

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :headless_chrome, screen_size: [1400, 1400]
end

Rails テスティングガイド - Railsガイド に、書いてありました。