I have a rails app, that is setup with the default test unit, how can I remove it and use rspec instead? (I don't have any tests written, I just didn't ignore it during app generation).
-
AFAIK, they can work together you are not obliged to remove the default test unit within rails to use rspec. – Amokrane Chentir Feb 22 '11 at 00:06
-
See also: http://stackoverflow.com/questions/3915534/rails-3-if-im-using-rspec-can-i-just-delete-the-test-folder – David J. Jun 23 '12 at 20:18
2 Answers
You can actually have any number of testing frameworks in use at the same time. For example, you can use cucumber, rspec, test-unit and mini-test and they will all function without stepping on each other's feet. To use rspec in rails simply add the following to your Gemfile:
group :development, :test do
gem 'rspec-rails'
end
Then update or install your bundle and run the following command to setup rspec:
rails generate rspec:install
You can find more information here.

- 34,082
- 9
- 88
- 85
For Rails 3, to really remove test_unit from your application, you need to remove (or comment out) the test_unit Railtie in application.rb
# require "rails/test_unit/railtie"
As Pan mentions, you don't have to just choose one testing framework. But you asked how to remove test_unit, so that is how you really do it.
(Curious about what this line of code does? Check out the railties/lib/rails/test_unit/railtie.rb source.)
To install RSpec into your app, follow the directions on rspec-rails. As it says, add rspec-rails to the :test and :development groups in the Gemfile:
group :test, :development do
gem "rspec-rails", "~> 2.0"
end
Then run bundle install
and then rails generate rspec:install

- 31,569
- 22
- 122
- 174
-
2I got the pointer to remove the Railtie from https://github.com/rails/rails/issues/2564 because it gets rid of the default `rake test` tasks. But I'm not seeing the test_unit Railtie in a current Rails app -- looks like something is different now. – David J. Mar 05 '13 at 00:48