class Minitest::Runnable - minitest-5.0.7 Documentation

# class Minitest::Runnable

Represents anything “runnable”, like Test, Spec, Benchmark, or whatever you can dream up.

Subclasses of this are automatically registered and available in ::runnables.

### Attributes

assertions[RW]

Number of assertions executed in this run.

failures[RW]

An assertion raised during the run, if any.

### Public Class Methods

methods_matching(re) click to toggle source

Returns all instance methods matching the pattern `re`.

    # File lib/minitest.rb, line 243
    def self.methods_matching re
      public_instance_methods(true).grep(re).map(&:to_s)
    end

run(reporter, options = {}) click to toggle source

Responsible for running all runnable methods in a given class, each in its own instance. Each instance is passed to the reporter to record.

    # File lib/minitest.rb, line 258
    def self.run reporter, options = {}
      filter = options[:filter] || '/./'
      filter = Regexp.new $1 if filter =~ /\/(.*)\//

      filtered_methods = self.runnable_methods.find_all { |m|
        filter === m || filter === "#{self}##{m}"
      }

      with_info_handler reporter do
        filtered_methods.each do |method_name|
          result = self.new(method_name).run
          raise "#{self}#run _must_ return self" unless self === result
          reporter.record result
        end
      end
    end

runnable_methods() click to toggle source

Each subclass of Runnable is responsible for overriding this method to return all runnable methods. See methods_matching.

    # File lib/minitest.rb, line 305
    def self.runnable_methods
      raise NotImplementedError, "subclass responsibility"
    end

runnables() click to toggle source

Returns all subclasses of Runnable.

    # File lib/minitest.rb, line 312
    def self.runnables
      @@runnables
    end

### Public Instance Methods

name() click to toggle source

Name of the run.

    # File lib/minitest.rb, line 224
    def name
      @NAME
    end

name=(o) click to toggle source

Set the name of the run.

    # File lib/minitest.rb, line 231
    def name= o
      @NAME = o
    end

passed?() click to toggle source

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.rb, line 347
    def passed?
      raise NotImplementedError, "subclass responsibility"
    end

result_code() click to toggle source

Returns a single character string to print based on the result of the run. Eg “.”, “F”, or “E”.

    # File lib/minitest.rb, line 355
    def result_code
      raise NotImplementedError, "subclass responsibility"
    end

run() click to toggle source

Runs a single method. Needs to return self.

    # File lib/minitest.rb, line 337
    def run
      raise NotImplementedError, "subclass responsibility"
    end

skipped?() click to toggle source

Was this run skipped? See passed? for more information.

    # File lib/minitest.rb, line 362
    def skipped?
      raise NotImplementedError, "subclass responsibility"
    end