99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# File 'lib/minitest/retry.rb', line 99
def run_one_method(klass, method_name)
result = super(klass, method_name)
klass_method_name = "#{klass.name}##{method_name}"
return result unless Minitest::Retry.failure_to_retry?(result.failures, klass_method_name, klass)
if !result.skipped?
Minitest::Retry.failure_callback.call(klass, method_name, result) if Minitest::Retry.failure_callback
Minitest::Retry.retry_count.times do |count|
Minitest::Retry.retry_callback.call(klass, method_name, count + 1, result) if Minitest::Retry.retry_callback
if Minitest::Retry.verbose && Minitest::Retry.io
msg = "[MinitestRetry] retry '%s' count: %s, msg: %s\n" %
[method_name, count + 1, result.failures.map(&:message).join(",")]
Minitest::Retry.io.puts(msg)
end
result = super(klass, method_name)
break if result.failures.empty?
end
if Minitest::Retry.consistent_failure_callback && !result.failures.empty?
Minitest::Retry.consistent_failure_callback.call(klass, method_name, result)
end
end
result
end
|