1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activesupport/lib/active_support/test_case.rb
Ryan Davis 3073c53198 Updates to make rails 4 happy with minitest 5:
+ Namespace changes, overhaul of runners.
+ Internal ivar name changes
- Removed a logger globally applied to tests that spew everywhere?!?
+ Override Minitest#__run to sort tests by name.
+ Reworked testing isolation to work with the new cleaner architecture.
- Removed a bunch of tests that just test minitest straight up. I think these changes were all merged to minitest 4 a long time ago.
- Minor report output differences.
2013-05-06 17:38:45 -07:00

85 lines
2.6 KiB
Ruby

gem 'minitest' # make sure we get the gem, not stdlib
require 'minitest/unit'
require 'active_support/testing/tagged_logging'
require 'active_support/testing/setup_and_teardown'
require 'active_support/testing/assertions'
require 'active_support/testing/deprecation'
require 'active_support/testing/pending'
require 'active_support/testing/declarative'
require 'active_support/testing/isolation'
require 'active_support/testing/constant_lookup'
require 'active_support/core_ext/kernel/reporting'
require 'active_support/deprecation'
begin
silence_warnings { require 'mocha/setup' }
rescue LoadError
end
module Minitest # :nodoc:
class << self
remove_method :__run
end
def self.__run reporter, options # :nodoc:
# FIXME: MT5's runnables is not ordered. This is needed because
# we have have tests have cross-class order-dependent bugs.
suites = Runnable.runnables.sort_by { |ts| ts.name.to_s }
parallel, serial = suites.partition { |s| s.test_order == :parallel }
ParallelEach.new(parallel).map { |suite| suite.run reporter, options } +
serial.map { |suite| suite.run reporter, options }
end
end
module ActiveSupport
class TestCase < ::Minitest::Test
Assertion = Minitest::Assertion
alias_method :method_name, :name
$tags = {}
def self.for_tag(tag)
yield if $tags[tag]
end
# FIXME: we have tests that depend on run order, we should fix that and
# remove this method.
def self.test_order # :nodoc:
:sorted
end
include ActiveSupport::Testing::TaggedLogging
include ActiveSupport::Testing::SetupAndTeardown
include ActiveSupport::Testing::Assertions
include ActiveSupport::Testing::Deprecation
include ActiveSupport::Testing::Pending
extend ActiveSupport::Testing::Declarative
# test/unit backwards compatibility methods
alias :assert_raise :assert_raises
alias :assert_not_empty :refute_empty
alias :assert_not_equal :refute_equal
alias :assert_not_in_delta :refute_in_delta
alias :assert_not_in_epsilon :refute_in_epsilon
alias :assert_not_includes :refute_includes
alias :assert_not_instance_of :refute_instance_of
alias :assert_not_kind_of :refute_kind_of
alias :assert_no_match :refute_match
alias :assert_not_nil :refute_nil
alias :assert_not_operator :refute_operator
alias :assert_not_predicate :refute_predicate
alias :assert_not_respond_to :refute_respond_to
alias :assert_not_same :refute_same
# Fails if the block raises an exception.
#
# assert_nothing_raised do
# ...
# end
def assert_nothing_raised(*args)
yield
end
end
end