Skip to content
This repository has been archived by the owner on Jun 10, 2023. It is now read-only.

Latest commit

 

History

History
118 lines (79 loc) · 3.52 KB

FOR_DEVELOPERS_RSPEC.md

File metadata and controls

118 lines (79 loc) · 3.52 KB

開発者向け情報 (RSpec テストの実行)

1. 環境構築

以下のアプリケーションを開発をおこなう環境へインストールします。

アプリケーション名 バージョン(指定がある場合のみ、記載する) インストール条件
Ruby 3.0.0 以上 $PATHを通しておきます
Google Chrome
ChromeDriver Google Chrome とバージョンを揃える $PATHを通しておきます

ChromeDriver の$PATHを通すとは、例えば macos の場合

  • https://chromedriver.chromium.org/ から ダウンロードした zip ファイルをダブルクリックで zip 解凍して /usr/local/bin に Finder でコピーする
  • curl -O https://chromedriver.storage.googleapis.com/バージョン番号/chromedriver_mac64.zip
    unzip chromedriver_mac64.zip
    mv chromedriver /usr/local/bin/
    # を実行する
  • Homebrew を使っているならば、brew install --cask chromedriver を実行する。
  • 自分の好きなディレクトリに chromedriver をコピーして、.zshrc や .bashrc で $PATH に追加する

などいろんな方法があります。

macos の Gatekeeper で chromedriver の起動が妨げられる場合は

xattr -d com.apple.quarantine /usr/local/bin/chromedriver

を実行する必要があるかもしれません。


2. セットアップ

コマンドの実行は、WorkingCopy のルートディレクトリでおこないます。

2-1. 関連ライブラリのインストール

依存関係を構築する

$ bundle install

2-2. production コードの生成

$ yarn run generate:deploy

2-3. ローカル Web サーバーを起動

$ yarn start

Web サーバーを起動したまま、以下 3. のテストの実行をします。


3. テストの実行

3-1. RSpec でテストを実行

# 全部のテストを一つずつ実行
$ bundle exec rspec spec
# 全部のテストを並列に実行 (parallel_rspec)
$ bundle exec parallel_rspec spec
# 特定のファイルだけ一つ実行
$ bundle exec rspec spec/feature/index_h1_spec.rb
# マッチするファイルを並列実行 (parallel_rspec)
$ bundle exec parallel_rspec spec/feature/*h3_spec.rb

4. テストの成功と失敗

4-1. テストの成功

50 examples, 0 failures

のような出力(GREEN)になります。

4-2. テストの失敗

48 examples, 2 failures

のような出力(RED)になります。

テストが失敗した場合はspec/screenshotにスクリーンショット画像が PNG で保存されます。


TIPS

  • static に generate した production コード(2-2, 2-3)ではなく、yarn devの development サーバーに対してもテストできますが、 Hot Module Replacement が効いて、テスト結果が安定しない場合があります。
  • spec/spec_helper.rboptions.add_argument('--headless')行をコメントアウトして「3.テストの実行」をすると、 Chrome を自動操縦してテストする様子を、画面に表示することができます。