class Test::Unit::Priority::Checker
Attributes
test[R]
Public Class Methods
available_priorities()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 59 def available_priorities methods(false).collect do |name| /\Arun_priority_(.+)\?\z/ =~ name.to_s $1 end.compact end
have_priority?(name)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 45 def have_priority?(name) singleton_class = (class << self; self; end) singleton_class.method_defined?(priority_check_method_name(name)) end
need_to_run?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 50 def need_to_run?(test) priority = test[:priority] || Priority.default if have_priority?(priority) __send__(priority_check_method_name(priority), test) else true end end
new(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 97 def initialize(test) @test = test end
run_priority_high?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 74 def run_priority_high?(test) rand > 0.3 end
run_priority_important?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 70 def run_priority_important?(test) rand > 0.1 end
run_priority_low?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 82 def run_priority_low?(test) rand > 0.75 end
run_priority_must?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 66 def run_priority_must?(test) true end
run_priority_never?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 86 def run_priority_never?(test) false end
run_priority_normal?(test)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 78 def run_priority_normal?(test) rand > 0.5 end
Private Class Methods
priority_check_method_name(priority_name)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 91 def priority_check_method_name(priority_name) "run_priority_#{priority_name}?" end
Public Instance Methods
need_to_run?()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 113 def need_to_run? !previous_test_success? or self.class.need_to_run?(@test) end
setup()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 101 def setup FileUtils.rm_f(passed_file) end
teardown()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 105 def teardown if @test.__send__(:passed?) FileUtils.touch(passed_file) else FileUtils.rm_f(passed_file) end end
Private Instance Methods
escape_class_name(class_name)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 148 def escape_class_name(class_name) escape_name(class_name) end
escape_name(name)
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 156 def escape_name(name) name.gsub(/(?:[: \/!?=])/) do |matched| case matched when ":" "_colon_" when " ", "/" "_" when "!" ".destructive" when "?" ".predicate" when "=" ".equal" end end end
escaped_method_name()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 152 def escaped_method_name escape_name(@test.method_name.to_s) end
passed_file()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 144 def passed_file File.join(result_dir, "passed") end
previous_test_success?()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 118 def previous_test_success? File.exist?(passed_file) end
result_dir()
click to toggle source
# File test-unit-3.6.4/lib/test/unit/priority.rb, line 122 def result_dir components = [ ".test-result", escape_class_name(@test.class.name || "AnonymousTestCase"), escaped_method_name, ] parent_directories = [File.dirname($0), Dir.pwd] if Process.respond_to?(:uid) parent_directories << File.join(Dir.tmpdir, Process.uid.to_s) end parent_directories.each do |parent_directory| dir = File.expand_path(File.join(parent_directory, *components)) begin FileUtils.mkdir_p(dir) return dir rescue Errno::EACCES end end raise Errno::EACCES, parent_directories.join(", ") end