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]

Public Class Methods

new() click to toggle source

Constructs a new, empty TestResult.

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

Public Instance Methods

add_assertion() click to toggle source

Records an individual assertion.

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

Records a test run.

# File lib/test/unit/testresult.rb, line 51
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 105
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 101
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 77
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
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 70
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 95
def to_s
  summary
end

Private Instance Methods

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