Class: Minitest::Test (Ruby 2.7.5)
Description: Class : Minitest::Test - Ruby 2.7.5

### Home Classes Methods

### In Files

- minitest-5.13.0/lib/minitest/hell.rb
- minitest-5.13.0/lib/minitest/test.rb

### Parent

Minitest::Runnable

### Namespace

- MODULE Minitest::Test::LifecycleHooks

### Methods

- ::i_suck_and_my_tests_are_order_dependent!
- ::make_my_diffs_pretty!
- ::parallelize_me!
- ::runnable_methods
- ::test_order
- #run

### Included Modules

- Minitest::Assertions
- Minitest::Reportable
- Minitest::Test::LifecycleHooks
- Minitest::Guard

### Files

- History.rdoc
- README.rdoc

### Class/Module Index

Quicksearch

- Kernel
- Minitest::AbstractReporter
- Minitest::Assertion
- Minitest::Assertions
- Minitest::BacktraceFilter
- Minitest::BenchSpec
- Minitest::Benchmark
- Minitest::CompositeReporter
- Minitest::Expectations
- Minitest::Guard
- Minitest::Mock
- Minitest::Parallel
- Minitest::Parallel::Executor
- Minitest::PrideIO
- Minitest::PrideLOL
- Minitest::ProgressReporter
- Minitest::Reportable
- Minitest::Result
- Minitest::Skip
- Minitest::Spec
- Minitest::Spec::DSL
- Minitest::Spec::DSL::InstanceMethods
- Minitest::StatisticsReporter
- Minitest::SummaryReporter
- Minitest::Test
- Minitest::Test::LifecycleHooks
- Minitest::UnexpectedError
- Object
- SubThingySpec
- ThingySpec

No matching classes.

# Minitest::Test

Subclass `Test` to create your own tests. Typically you'll want a `Test` subclass per implementation class.

See `Minitest::Assertions`

### Public Class Methods

i_suck_and_my_tests_are_order_dependent!() click to toggle source

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 minitest-5.13.0/lib/minitest/test.rb, line 31
    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_my_diffs_pretty!() click to toggle source

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 minitest-5.13.0/lib/minitest/test.rb, line 44
    def self.make_my_diffs_pretty!
      require "pp"

      define_method :mu_pp, &:pretty_inspect
    end

parallelize_me!() click to toggle source

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 minitest-5.13.0/lib/minitest/test.rb, line 55
    def self.parallelize_me!
      include Minitest::Parallel::Test
      extend Minitest::Parallel::Test::ClassMethods
    end

runnable_methods() click to toggle source

Returns all instance methods starting with “test_”. Based on test_order, the methods are either sorted, randomized (default), or run in parallel.

                   # File minitest-5.13.0/lib/minitest/test.rb, line 65
    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

test_order() click to toggle source

Defines the order to run tests (:random by default). Override this or use a convenience method to change it for your tests.

                   # File minitest-5.13.0/lib/minitest/test.rb, line 83
    def self.test_order
      :random
    end

### Public Instance Methods

run() click to toggle source

Runs a single test with setup/teardown hooks.

                   # File minitest-5.13.0/lib/minitest/test.rb, line 92
    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

      Result.from self # per contract
    end