How can I tell Rails to use RSpec instead of test-unit when creating a new Rails app?
The following should work:
at command line:
rails new MYAPP -T # The -T option tells rails not to include Test::Unit
in Gemfile:
gem 'rspec-rails'
at command line:
bundle install
rails g rspec:install
Create your new rails application as:
rails new <app_name> -T
Or remove your test
directory from your existing application:
rm -rf test/
Make an entry in your Gemfile:
gem 'rspec-rails'
From the command line install the gem
$ bundle install
From the command line install rspec into your application:
$ rails g rspec:install
Now your rails application uses RSpec instead of test-unit.
Once you created your rails application with:
rails new <app_name> -T # to exclude Test::Unit
Add the RSpec gem to your Gemfile in the following way:
group :development, :test do
gem "rspec-rails"
end
In Command line write:
bundle install # this will install the missing gems
Now you need to install RSpec by running:
rails generate rspec:install
This will generate the following files:
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
I strongly recommended to read through all spec_helper and rails_helper comments to get a good understanding of what each option does.
Once everything is set you can run all your tests with:
bundle exec rspec
You can read more about the recommended spec_helper and rails_helper configurations on https://kolosek.com/rails-rspec-setup.