Skip to content

Instantly share code, notes, and snippets.

@sethbro
Created February 10, 2012 01:09
Show Gist options
  • Save sethbro/1784986 to your computer and use it in GitHub Desktop.
Save sethbro/1784986 to your computer and use it in GitHub Desktop.
Rails unit, functional and integration tests in Minitest spec format.
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rubygems'
gem 'minitest'
require 'minitest/autorun'
require 'action_controller/test_case'
require 'miniskirt'
require 'capybara/rails'
require 'mocha'
require 'turn'
# Support files
Dir["#{File.expand_path(File.dirname(__FILE__))}/support/*.rb"].each do |file|
require file
end
class MiniTest::Spec
include ActiveSupport::Testing::SetupAndTeardown
alias :method_name :__name__ if defined? :__name__
end
class ControllerSpec < MiniTest::Spec
include Rails.application.routes.url_helpers
include ActionController::TestCase::Behavior
before do
@routes = Rails.application.routes
end
end
# Test subjects ending with 'Controller' are treated as functional tests
# e.g. describe TestController do ...
MiniTest::Spec.register_spec_type( /Controller$/, ControllerSpec )
class AcceptanceSpec < MiniTest::Spec
include Rails.application.routes.url_helpers
include Capybara::DSL
before do
@routes = Rails.application.routes
end
end
# Test subjects ending with 'Integration' are treated as acceptance/integration tests
# e.g. describe 'Test system Integration' do ...
MiniTest::Spec.register_spec_type( /Integration$/, AcceptanceSpec )
Turn.config do |c|
# use one of output formats:
# :outline - turn's original case/test outline mode [default]
# :progress - indicates progress with progress bar
# :dotted - test/unit's traditional dot-progress mode
# :pretty - new pretty reporter
# :marshal - dump output as YAML (normal run mode only)
# :cue - interactive testing
c.format = :cue
# turn on invoke/execute tracing, enable full backtrace
c.trace = true
# use humanized test names (works only with :outline format)
c.natural = true
end
@jsborjesson
Copy link

This helped me a bunch, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment