class Test::Unit::TestResult - test-unit: Ruby Standard Library Documentation

# class Test::Unit::TestResult

Collects `Test::Unit::Failure` and `Test::Unit::Error` so that they can be displayed to the user. To this end, observers can be added to it, allowing the dynamic updating of, say, a `UI`.

### Constants

CHANGED
FAULT
FINISHED
PASS_ASSERTION

### Attributes

assertion_count[R]
faults[R]
pass_count[R]
run_count[R]
stop_tag[RW]

### Public Class Methods

new() click to toggle source

Constructs a new, empty `TestResult`.

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 44
    def initialize
      @run_count, @pass_count, @assertion_count = 0, 0, 0
      @summary_generators = []
      @problem_checkers = []
      @faults = []
      @stop_tag = nil
      initialize_containers
    end

### Public Instance Methods

add_assertion() click to toggle source

Records an individual assertion.

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 65
    def add_assertion
      @assertion_count += 1
      notify_listeners(PASS_ASSERTION, self)
      notify_changed
    end

add_pass() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 60
    def add_pass
      @pass_count += 1
    end

add_run(result=self) click to toggle source

Records a test run.

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 54
    def add_run(result=self)
      @run_count += 1
      notify_listeners(FINISHED, result)
      notify_changed
    end

pass_percentage() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 112
    def pass_percentage
      n_tests = @run_count - omission_count
      if n_tests.zero?
        0
      else
        100.0 * (@pass_count / n_tests.to_f)
      end
    end

passed?() click to toggle source

Returns whether or not this `TestResult` represents successful completion.

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 108
    def passed?
      @problem_checkers.all? {|checker| not __send__(checker)}
    end

status() click to toggle source

Returnes a string that shows result status.

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 80
    def status
      if passed?
        if pending_count > 0
          "pending"
        elsif omission_count > 0
          "omission"
        elsif notification_count > 0
          "notification"
        else
          "pass"
        end
      elsif error_count > 0
        "error"
      elsif failure_count > 0
        "failure"
      end
    end

stop() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 98
    def stop
      throw @stop_tag
    end

summary() click to toggle source

Returns a string contain the recorded runs, assertions, failures and errors in this `TestResult`.

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 73
    def summary
      ["#{run_count} tests",
       "#{assertion_count} assertions",
       *@summary_generators.collect {|generator| __send__(generator)}].join(", ")
    end

to_s() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 102
    def to_s
      summary
    end

### Private Instance Methods

notify_changed() click to toggle source

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 122
    def notify_changed
      notify_listeners(CHANGED, self)
    end

notify_fault(fault) click to toggle source

    # File test-unit-3.6.7/lib/test/unit/testresult.rb, line 126
    def notify_fault(fault)
      @faults << fault
      notify_listeners(FAULT, fault)
    end