MiniTest integration for Rails 3.
gem install minitest-rails
This installs the following gems:
Create a new rails app without Test::Unit:
rails new MyApp --skip-test-unit
Add minitest-rails to the :test and :development groups in Gemfile:
group :test, :development do gem 'minitest-rails' end
Next run the installation generator with the following:
rails generate mini_test:install
This will add the minitest_helper.rb file to the test directory.
We aim to expose MiniTest with minimal changes for testing within Rails. Because of this, we allow Test::Unit and MiniTest tests to live side by side. Your test classes will inherit from MiniTest::Rails::ActiveSupport::TestCase a opposed to ActiveSupport::TestCase. You can use the MiniTest::Spec DSL. You can generate test files with the standard model, controller, resource, and other generators:
rails generate model User
And you can specify generating the tests using the MiniTest::Spec DSL on any of the generators by providing the --spec option:
rails generate model User --spec
And you can specify not generating the fixture for a model by providing the --skip-fixture option:
rails generate model User --skip-fixture
You can also set these as defaults by adding the following to the config/application.rb file:
config.generators do |g| g.test_framework :mini_test, :spec => true, :fixture => false end
Of course, you may not want to maintain separate Test::Unit and MiniTest tests. If this is the behavior you are wanting, simply add the following to your test_helper.rb file:
require "minitest/rails" MiniTest::Rails.override_testunit!
You can use Capybara in your acceptance/integration tests by adding minitest-rails-capybara as a dependency.
group :test, :development do gem 'minitest-rails' gem 'minitest-rails-capybara' end
And add the following to your test helper file:
See the minitest-rails-capybara project for more information.
Join the mailing list to get help or offer suggestions.
Copyright © 2012 Mike Moore.
Released under the MIT license. See `LICENSE` for details.