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.
Constructs a new, empty TestResult.
# File test-unit-3.3.4/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
Records an individual assertion.
# File test-unit-3.3.4/lib/test/unit/testresult.rb, line 65
def add_assertion
@assertion_count += 1
notify_listeners(PASS_ASSERTION, self)
notify_changed
end
# File test-unit-3.3.4/lib/test/unit/testresult.rb, line 60
def add_pass
@pass_count += 1
end
Records a test run.
# File test-unit-3.3.4/lib/test/unit/testresult.rb, line 54
def add_run
@run_count += 1
notify_listeners(FINISHED, self)
notify_changed
end
# File test-unit-3.3.4/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
Returns whether or not this TestResult represents successful completion.
# File test-unit-3.3.4/lib/test/unit/testresult.rb, line 108
def passed?
@problem_checkers.all? {|checker| not __send__(checker)}
end
Returnes a string that shows result status.
# File test-unit-3.3.4/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
# File test-unit-3.3.4/lib/test/unit/testresult.rb, line 98
def stop
throw @stop_tag
end
Returns a string contain the recorded runs, assertions, failures and errors in this TestResult.
# File test-unit-3.3.4/lib/test/unit/testresult.rb, line 73
def summary
["#{run_count} tests",
"#{assertion_count} assertions",
*@summary_generators.collect {|generator| __send__(generator)}].join(", ")
end