Class: Test::Unit::TestResult

Overview

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.

Constant Summary collapse

CHANGED =
"CHANGED"
FAULT =
"FAULT"

Constants included from Util::Observable

Util::Observable::NOTHING

Instance Attribute Summary collapse

Attributes included from TestResultNotificationSupport

#notifications

Attributes included from TestResultOmissionSupport

#omissions

Attributes included from TestResultPendingSupport

#pendings

Attributes included from TestResultErrorSupport

#errors

Attributes included from TestResultFailureSupport

#failures

Instance Method Summary collapse

Methods included from TestResultNotificationSupport

#add_notification, #notification_count

Methods included from TestResultOmissionSupport

#add_omission, #omission_count

Methods included from TestResultPendingSupport

#add_pending, #pending_count

Methods included from TestResultErrorSupport

#add_error, #error_count, #error_occurred?

Methods included from TestResultFailureSupport

#add_failure, #failure_count, #failure_occurred?

Methods included from Util::Observable

#add_listener, #notify_listeners, #remove_listener

Constructor Details

#initializeTestResult

Constructs a new, empty TestResult.



40
41
42
43
44
45
46
# File 'lib/test/unit/testresult.rb', line 40

def initialize
  @run_count, @pass_count, @assertion_count = 0, 0, 0
  @summary_generators = []
  @problem_checkers = []
  @faults = []
  initialize_containers
end

Instance Attribute Details

#assertion_countObject (readonly)

Returns the value of attribute assertion_count.



37
38
39
# File 'lib/test/unit/testresult.rb', line 37

def assertion_count
  @assertion_count
end

#faultsObject (readonly)

Returns the value of attribute faults.



37
38
39
# File 'lib/test/unit/testresult.rb', line 37

def faults
  @faults
end

#pass_countObject (readonly)

Returns the value of attribute pass_count.



37
38
39
# File 'lib/test/unit/testresult.rb', line 37

def pass_count
  @pass_count
end

#run_countObject (readonly)

Returns the value of attribute run_count.



37
38
39
# File 'lib/test/unit/testresult.rb', line 37

def run_count
  @run_count
end

Instance Method Details

#add_assertionObject

Records an individual assertion.



59
60
61
62
# File 'lib/test/unit/testresult.rb', line 59

def add_assertion
  @assertion_count += 1
  notify_changed
end

#add_passObject



54
55
56
# File 'lib/test/unit/testresult.rb', line 54

def add_pass
  @pass_count += 1
end

#add_runObject

Records a test run.



49
50
51
52
# File 'lib/test/unit/testresult.rb', line 49

def add_run
  @run_count += 1
  notify_changed
end

#pass_percentageObject



101
102
103
104
105
106
107
108
# File 'lib/test/unit/testresult.rb', line 101

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?Boolean

Returns whether or not this TestResult represents successful completion.

Returns:

  • (Boolean)


97
98
99
# File 'lib/test/unit/testresult.rb', line 97

def passed?
  @problem_checkers.all? {|checker| not send(checker)}
end

#statusObject

Returnes a string that shows result status.



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/test/unit/testresult.rb', line 73

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

#summaryObject

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



66
67
68
69
70
# File 'lib/test/unit/testresult.rb', line 66

def summary
  ["#{run_count} tests",
   "#{assertion_count} assertions",
   *@summary_generators.collect {|generator| send(generator)}].join(", ")
end

#to_sObject



91
92
93
# File 'lib/test/unit/testresult.rb', line 91

def to_s
  summary
end