PATH:
opt
/
alt
/
ruby34
/
share
/
gems
/
gems
/
test-unit-3.6.7
/
lib
/
test
/
unit
#-- # Author:: Nathaniel Talbott. # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. # License:: Ruby license. require 'test/unit/util/observable' require 'test/unit/failure' require 'test/unit/error' require 'test/unit/omission' require 'test/unit/pending' require 'test/unit/notification' module Test module Unit module NullResultContainerInitializer private def initialize_containers end end # 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. class TestResult include Util::Observable include NullResultContainerInitializer include TestResultFailureSupport include TestResultErrorSupport include TestResultPendingSupport include TestResultOmissionSupport include TestResultNotificationSupport FINISHED = name + "::FINISHED" CHANGED = name + "::CHANGED" PASS_ASSERTION = name + "::PASS_ASSERTION" FAULT = name + "::FAULT" attr_reader :run_count, :pass_count, :assertion_count, :faults attr_accessor :stop_tag # Constructs a new, empty TestResult. def initialize @run_count, @pass_count, @assertion_count = 0, 0, 0 @summary_generators = [] @problem_checkers = [] @faults = [] @stop_tag = nil initialize_containers end # Records a test run. def add_run(result=self) @run_count += 1 notify_listeners(FINISHED, result) notify_changed end def add_pass @pass_count += 1 end # Records an individual assertion. def add_assertion @assertion_count += 1 notify_listeners(PASS_ASSERTION, self) notify_changed end # Returns a string contain the recorded runs, assertions, # failures and errors in this TestResult. def summary ["#{run_count} tests", "#{assertion_count} assertions", *@summary_generators.collect {|generator| __send__(generator)}].join(", ") end # Returnes a string that shows result status. 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 def stop throw @stop_tag end def to_s summary end # Returns whether or not this TestResult represents # successful completion. def passed? @problem_checkers.all? {|checker| not __send__(checker)} end 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 private def notify_changed notify_listeners(CHANGED, self) end def notify_fault(fault) @faults << fault notify_listeners(FAULT, fault) end end end end
[-] error.rb
[edit]
[-] priority.rb
[edit]
[-] code-snippet-fetcher.rb
[edit]
[-] attribute.rb
[edit]
[-] assertions.rb
[edit]
[-] diff.rb
[edit]
[-] data-sets.rb
[edit]
[-] attribute-matcher.rb
[edit]
[-] failure.rb
[edit]
[+]
util
[-] test-suite-creator.rb
[edit]
[-] notification.rb
[edit]
[+]
collector
[-] test-suite-thread-runner.rb
[edit]
[-] color-scheme.rb
[edit]
[-] version.rb
[edit]
[-] exception-handler.rb
[edit]
[-] color.rb
[edit]
[+]
runner
[-] warning.rb
[edit]
[-] fault-location-detector.rb
[edit]
[-] collector.rb
[edit]
[-] omission.rb
[edit]
[-] pending.rb
[edit]
[-] auto-runner-loader.rb
[edit]
[-] testresult.rb
[edit]
[-] assertion-failed-error.rb
[edit]
[-] sub-test-result.rb
[edit]
[-] autorunner.rb
[edit]
[-] test-suite-runner.rb
[edit]
[-] data.rb
[edit]
[-] testcase.rb
[edit]
[+]
..
[-] testsuite.rb
[edit]
[+]
ui
[-] fixture.rb
[edit]