書き途中です。


3行で

  • RailsアプリでE2Eテストしたい
  • Rails 5.1 で SystemTestCaseという機能が入り、RSpecユーザにはSystem Specという同等のgemがあるのでそれを使う
  • CIで動かす方法

前提

  • Ruby on Rails 5.1 以上
  • 今回E2Eテストを導入した対象のRailsアプリはDBを持たずにAPIと通信してデータ持ってきて表示するだけのアプリです。そのため、DBが絡んだ設定などが抜けてます

RSpecの設定

RSpecの設定は rspec-rails 3.7の新機能!System Specを使ってみた - Qiita を読んだらわかりました。すごい丁寧です。

今回はChromeのヘッドレスモードを使いたかったので以下になりました。

spec/spec_helper.rb
  config.before(:each) do |example|
    if example.metadata[:type] == :system
      driven_by :selenium_chrome_headless, screen_size: [800, 1000]
    end
  end

Circle CIの設定

Circle CI 上で動かしたいので、以下の設定が必要になりました。

  • 2.0対応
  • Dockerイメージは ruby:2.3-node-browsers にする
    • -browsers つけたものにするのは、e2eテストにChromeが必要なため)
  • 失敗時のスクリーンショットをArtifactsに保存
    • store_artifacts を設定
    • 日本語文字化け問題を解決する

参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.