Railsを新しくnewしたあとにrspecをインストールして設定などを書き換え、rspecが実際に動くところまでをやってみたいと思います。
Rails5.2になってから少し手順が増えていたりするので参考にしていただければ幸いです。
rails newする
まずはnewしましょう。このとき自分が使うデータベースに合わせてdオプション
を利用することでデータベースを選択出来ます。--skip-test
または-T
オプションでテストを省略することが出来ます。
それでは実際にrails newをしましょう。
$ rails new application_name -d mysql -T
あとからTオプションを使用した場合の状態にするとき
もしrails newしたあとにTオプションを使っていないことに気づいた場合、そのプロジェクトを削除してもう一度newしたほうが早いのですが、場合によってはそれが出来ず、修正する必要がある場合もあるかと思います。そのときはまずtests
ディレクトリを削除したあと、config/application.rb
の部分を修正しましょう。
...省略 # require 'rails/all'の置き換え # require 'rails/all' しているファイル群は railsレポジトリの rails/railties/lib/rails/all.rbに書いてある require "rails" require "active_record/railtie" require "active_model/railtie" require 'active_storage/engine' require "action_controller/railtie" require "action_view/railtie" require "action_mailer/railtie" require "active_job/railtie" require "action_cable/engine" # require "rails/test_unit/railtie" require "sprockets/railtie" Bundler.require(*Rails.groups) ...(省略)
Gemfileにrspecを追加
次にrspecをインストールします。Gemfileに以下を追加しましょう。
group :development, :test do gem 'rspec-rails', '~> 3.7' end
追加出来たらbundle installを実行します。
$ bundle install
これでrspecを追加出来ました。
rspecの設定
rspecを追加したら忘れないうちに設定ファイルを作成しましょう。忘れやすいのでお早めに。
$ rails generate rspec:install create .rspec create spec create spec/spec_helper.rb create spec/rails_helper.rb
これで設定ファイルが作成されました。最後にgenerators
を設定しておきましょう。
Rails.application.config.generators do |g| g.javascripts false g.stylesheets false g.helper false g.jbuilder false g.test_framework :rspec, fixture: true, view_specs: false, helper_specs: false, routing_specs: false, controller_specs: true, request_specs: true end
これでrails generate
時に指定したファイルのみ作成されるようになります。
動作確認
最後にテストが実行されるかどうか確認しましょう。データベースを作成したあとにrspecを実行します。
$ bundle exec rake db:create $ bundle exec rspec No examples found. Finished in 0.00044 seconds (files took 0.1446 seconds to load) 0 examples, 0 failures
上記のようにオールグリーンになったら正常に動いています。
お疲れ様でした!