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 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 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 lib/test/unit/testresult.rb, line 60
def add_pass
  @pass_count += 1
end
add_run() click to toggle source

Records a test run.

# File lib/test/unit/testresult.rb, line 54
def add_run
  @run_count += 1
  notify_listeners(FINISHED, self)
  notify_changed
end
pass_percentage() click to toggle source
# File 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 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 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 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 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 lib/test/unit/testresult.rb, line 102
def to_s
  summary
end

Private Instance Methods

notify_changed() click to toggle source
# File lib/test/unit/testresult.rb, line 122
def notify_changed
  notify_listeners(CHANGED, self)
end
notify_fault(fault) click to toggle source
# File lib/test/unit/testresult.rb, line 126
def notify_fault(fault)
  @faults << fault
  notify_listeners(FAULT, fault)
end