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.