Runnable
Subclass Test to create your own tests. Typically you'll want a Test subclass per implementation class.
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 20 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 TestCase use pretty_inspect so that diff in assert_equal can be more details. NOTE: this is much slower than the regular inspect but much more usable for complex objects.
# File lib/minitest/test.rb, line 33 def self.make_my_diffs_pretty! require "pp" define_method :mu_pp do |o| o.pretty_inspect end 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 46 def self.parallelize_me! require "minitest/parallel_each" class << self undef_method :test_order if method_defined? :test_order define_method :test_order do :parallel end end 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 :parallel max = methods.size ParallelEach.new methods.sort.sort_by { rand max } when :random 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 81 def self.test_order :random end
# File lib/minitest/parallel_each.rb, line 73 def capture_io(&b) Test.synchronize do simple_capture_io(&b) end end
# File lib/minitest/parallel_each.rb, line 81 def capture_subprocess_io(&b) Test.synchronize do simple_capture_subprocess_io(&b) end end
Did this run error?
# File lib/minitest/test.rb, line 219 def error? self.failures.any? { |f| UnexpectedError === f } end
The location identifier of this test.
# File lib/minitest/test.rb, line 226 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 237 def passed? not self.failure end
Returns ".", "F", or "E" based on the result of the run.
# File lib/minitest/test.rb, line 244 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 102 def run with_info_handler do time_it do capture_exceptions do before_setup; setup; after_setup self.send self.name end %{ before_teardown teardown after_teardown }.each do |hook| capture_exceptions do self.send hook end end end end self # per contract end
Generated with the Darkfish Rdoc Generator 2.