Railsプロジェクトを新規作成する際下記オプションを使用するとMinitestを除いたRailsプロジェクトが作成される。
$ rails new hoge -T
プロジェクト開始後途中でMinitestからRSpecに変更したくなった場合は何をすればいいのか?
テストコードの移植等には触れない。
1.testディレクトリの削除
testディレクトリにMinitestのテストコードが格納されているのでディレクトリ毎削除する
2.読み込むコンポーネントの修正
当たり前だが1を行っただけではMinitestはアクティブなまま。この状態で何かをgenerateするとMinitest用のファイルがtestディレクトリに作成される。
application.rbで読み込むコンポーネントを指定しているがそこでMinitestを読み込まないようにする。
diff --git a/config/application.rb b/config/application.rb index 0f21836..d6e2cb0 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,6 +1,14 @@ require File.expand_path('../boot', __FILE__) -require 'rails/all' +# Pick the frameworks you want: +require "active_model/railtie" +require "active_job/railtie" +require "active_record/railtie" +require "action_controller/railtie" +require "action_mailer/railtie" +require "action_view/railtie" +require "sprockets/railtie" +# require "rails/test_unit/railtie" # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production.
全部読み込む場合にはrails/allで良いみたいだがそれ以外は個別に書くしかないみたいだ。
ちなみにこの修正を行わなくてもrspec-railsを導入すればrspec用ファイルが生成されるが、余計なコンポーネントを抱えながらになるのでできればやっておきたい。
あとはGemfileにrspec-railsを追加してbundle installすれば-Tオプションつけたのと同じ状態になる。