Subclass Test to create your own tests. Typically you'll want a Test subclass per implementation class.
The time it took to run this test.
Call this at the top of your tests when you absolutely positively need to have ordered tests. In doing so, you're admitting that you suck and your tests are weak.
# File lib/minitest/test.rb, line 26
def self.i_suck_and_my_tests_are_order_dependent!
class << self
undef_method :test_order if method_defined? :test_order
define_method :test_order do :alpha end
end
end Make diffs for this Test use pretty_inspect so that diff in assert_equal can have more details. NOTE: this is much slower than the regular inspect but much more usable for complex objects.
# File lib/minitest/test.rb, line 39 def self.make_my_diffs_pretty! require "pp" define_method :mu_pp, &:pretty_inspect end
Call this at the top of your tests when you want to run your tests in parallel. In doing so, you're admitting that you rule and your tests are awesome.
# File lib/minitest/test.rb, line 50 def self.parallelize_me! include Minitest::Parallel::Test extend Minitest::Parallel::Test::ClassMethods end
Returns all instance methods starting with “test_”. Based on test_order, the methods are either sorted, randomized (default), or run in parallel.
# File lib/minitest/test.rb, line 60
def self.runnable_methods
methods = methods_matching(/^test_/)
case self.test_order
when :random, :parallel then
max = methods.size
methods.sort.sort_by { rand max }
when :alpha, :sorted then
methods.sort
else
raise "Unknown test_order: #{self.test_order.inspect}"
end
end Defines the order to run tests (:random by default). Override this or use a convenience method to change it for your tests.
# File lib/minitest/test.rb, line 78 def self.test_order :random end
Did this run error?
# File lib/minitest/test.rb, line 216
def error?
self.failures.any? { |f| UnexpectedError === f }
end The location identifier of this test.
# File lib/minitest/test.rb, line 223
def location
loc = " [#{self.failure.location}]" unless passed? or error?
"#{self.class}##{self.name}#{loc}"
end Did this run pass?
Note: skipped runs are not considered passing, but they don't cause the process to exit non-zero.
# File lib/minitest/test.rb, line 234 def passed? not self.failure end
Returns “.”, “F”, or “E” based on the result of the run.
# File lib/minitest/test.rb, line 241 def result_code self.failure and self.failure.result_code or "." end
Runs a single test with setup/teardown hooks.
# File lib/minitest/test.rb, line 101
def run
with_info_handler do
time_it do
capture_exceptions do
before_setup; setup; after_setup
self.send self.name
end
TEARDOWN_METHODS.each do |hook|
capture_exceptions do
self.send hook
end
end
end
end
self # per contract
end Was this run skipped?
# File lib/minitest/test.rb, line 248 def skipped? self.failure and Skip === self.failure end
© Ryan Davis, seattle.rb
Licensed under the MIT License.