はじめに
僕が翻訳者として参加している電子書籍「Everyday Rails - RSpecによるRailsテスト入門」は2014年の日本語版発売以来、現在まで随時内容をアップデートを繰り返しています。
今の内容も十分実用性があるのですが、使用しているライブラリのバージョンが若干古くなっているせいか、ときどきネット上で「サンプルアプリのセットアップがうまくいかない」というコメントを見かけたりします。
そこで僕が実際にゼロからサンプルアプリをセットアップする動画を作成してYouTubeにアップしてみました。
動画の内容
この動画ではGitHubからサンプルアプリをクローンして、サンプルアプリが起動することと、masterブランチのテストがすべてパスするまでの手順を説明しています。
実行環境はGitHubのこのコミット(8b3800f)時点のコード、および本書の2019-10-01版の内容にあわせて次のようになっています。
- Rails 5.1.1
- RSpec 3.8.0(書籍の中では3.6.0が使われていますが、大きな違いはありません)
- Ruby 2.4.9 (2019年10月14日時点のRuby 2.4系の最新版)
ただし、この動画では以下の内容は説明していません。
- rbenvのセットアップ
- gitのセットアップ
- Chromeのインストール
また、対象となる実行環境はmacOSです。(具体的にはmacOSX Mojave 10.14.6)
ざっくりとした手順
というわけで、具体的な手順については動画を見てやってください!・・・で終わってもいいのですが、動画を見る時間がない、という人のために簡単に手順を紹介しておきます。
# GitHubからコードをクローン git clone git@github.com:everydayrails/everydayrails-rspec-2017.git # ディレクトリを移動 cd everydayrails-rspec-2017 # 実行環境をRuby 2.4系に設定(2.4系のRubyを事前にインストールしておく) rbenv local 2.4.9 # Bundlerのインストール(まだインストールしていない場合) gem install bundler # gemのインストール bundle install # マイグレーション実行 rails db:migrate # サーバーを起動して動作確認(最初はSign up画面にてユーザーを作成) rails s # テストが全部パスすることを確認 bin/rspec
動画の中でもお話ししたとおり、僕が今回試した手順では特に大きなトラブルもなく、テストが全部パスするところまで実行できました。
2021-3-27 追記
mimemagic gemの過去のバージョンが削除(yank)されてしまった関係で、bundle install
すると以下のようなエラーが出る場合があります(参考記事)。
Your bundle is locked to mimemagic (0.3.2), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of mimemagic (0.3.2) has removed it. You'll need to update your bundle to a different version of mimemagic (0.3.2) that hasn't been removed in order to install.
このエラーが出た場合はbundle install
の代わりにbundle update mimemagic
を実行するとgemのインストールができるはずです。
bundle update mimemagic
ただし、gemのインストールが成功しても以下のようなエラーが出る場合があります。
Failures: 1) Tasks user toggles a task Got 0 failures and 2 other errors: 1.1) Failure/Error: visit root_path Selenium::WebDriver::Error::SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 90 Current browser version is 89.0.4389.90 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
この場合はGemfileを開き、"chromedriver-helper"を"webdrivers"に置き換えてください。
group :test do gem 'capybara', '~> 2.15.4' gem 'selenium-webdriver' - gem 'chromedriver-helper' + gem 'webdrivers' # Or use poltergeist and PhantomJS as an alternative to Selenium/Chrome # gem 'poltergeist', '~> 1.15.0' gem 'launchy', '~> 2.4.3'
さらに、"selenium-webdriver"も一緒にアップデートした方が良いので、Gemfileを保存したらbundle update selenium-webdriver
を実行してください。
bundle update selenium-webdriver
僕の環境ではこれで全テストがパスしました。
(参考:動作確認した実行環境)
- MacBook Pro (13-inch, M1, 2020)
- macOs BigSur 11.2.3
- Ruby 2.4.10 (rbenvでインストール)
- Chrome 89.0.4389.90 (Official Build) (arm64)
Cloud9で動かしたい場合
Cloud9で実行したい人は以下の動画が参考になるかもしれません。
【2019年7月版】Cloud9上でEveryday Railsの`js: true`付きのフィーチャスペックを実行する手順
Qiitaに書いた以下の記事もあわせてご覧ください。
お願い:質問は「みんなが見える場所」で!
この動画を見てもうまく動かない!という場合は、僕の方でできるかぎりサポートします。
ただし、その場合はTeratailやStackOverflowなど、「みんなが見える場所」で質問するようにしてください。(DMでの技術的な質問は基本的にNGです)
その上でTwitter等で「ここに質問を書いたので見てください」とメンションをもらえれば、何らかのコメントを返すようにします。
なぜ「みんなが見える場所」での質問をお願いするのかという理由については以下のエントリにまとめてあるので、こちらも参考にどうぞ。
blog.jnito.com
まとめ
というわけで、このエントリではYouTubeに公開した「Everyday Rails - RSpecによるRailsテスト入門」のセットアップ解説動画について紹介しました。
もし「Everyday Railsを買ったけど、セットアップがうまくいかなくて困っている」という人がいたら、ぜひこの動画を参考にしてみてください!
【2019年10月版】「Everyday Rails - RSpecによるRailsテスト入門」の環境作成手順
あわせて読みたい
さらに、このサンプルアプリケーションをRails 6にアップデートしたときに発生するテストコードの変更点についてもブログにまとめました。
こちらも動画付きです。よかったら参考にしてみてください。
「Everyday Rails - RSpecによるRailsテスト入門」について
「Everyday Rails - RSpecによるRailsテスト入門」はその名の通り、RailsアプリケーションをRSpecを使ってテストする方法を解説した電子書籍です。
難易度的には「RailsやRubyがある程度わかっている人であればOK、RSpecの知識はゼロでも大丈夫」というレベルになっています。
内容の詳細や購入方法等については以下のエントリにまとめてあるので、こちらを参考にしてください。
blog.jnito.com
ご購入は以下のサイトからどうぞ。
Everyday Rails - RSpecによるRailsテスト入門 - Leanpub