зеркало из https://github.com/github/ruby.git
test/unit.rb: --repeat-count option
* test/lib/test/unit.rb (Test::Unit::RepeatOption): --repeat-count option to repeat COUNT times while success. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
cad799b006
Коммит
642b3a260b
|
@ -872,35 +872,45 @@ module MiniTest
|
|||
suites = TestCase.send "#{type}_suites"
|
||||
return if suites.empty?
|
||||
|
||||
start = Time.now
|
||||
|
||||
puts
|
||||
puts "# Running #{type}s:"
|
||||
puts
|
||||
|
||||
@test_count, @assertion_count = 0, 0
|
||||
test_count = assertion_count = 0
|
||||
sync = output.respond_to? :"sync=" # stupid emacs
|
||||
old_sync, output.sync = output.sync, true if sync
|
||||
|
||||
results = _run_suites suites, type
|
||||
count = 0
|
||||
begin
|
||||
start = Time.now
|
||||
|
||||
@test_count = results.inject(0) { |sum, (tc, _)| sum + tc }
|
||||
@assertion_count = results.inject(0) { |sum, (_, ac)| sum + ac }
|
||||
results = _run_suites suites, type
|
||||
|
||||
@test_count = results.inject(0) { |sum, (tc, _)| sum + tc }
|
||||
@assertion_count = results.inject(0) { |sum, (_, ac)| sum + ac }
|
||||
test_count += @test_count
|
||||
assertion_count += @assertion_count
|
||||
t = Time.now - start
|
||||
count += 1
|
||||
unless @repeat_count
|
||||
puts
|
||||
puts
|
||||
end
|
||||
puts "Finished%s %ss in %.6fs, %.4f tests/s, %.4f assertions/s.\n" %
|
||||
[(@repeat_count ? "(#{count}/#{@repeat_count}) " : ""), type,
|
||||
t, @test_count.fdiv(t), @assertion_count.fdiv(t)]
|
||||
end while @repeat_count && count < @repeat_count && report.empty?
|
||||
|
||||
output.sync = old_sync if sync
|
||||
|
||||
t = Time.now - start
|
||||
|
||||
puts
|
||||
puts
|
||||
puts "Finished #{type}s in %.6fs, %.4f tests/s, %.4f assertions/s." %
|
||||
[t, test_count / t, assertion_count / t]
|
||||
|
||||
report.each_with_index do |msg, i|
|
||||
puts "\n%3d) %s" % [i + 1, msg]
|
||||
end
|
||||
|
||||
puts
|
||||
@test_count = test_count
|
||||
@assertion_count = assertion_count
|
||||
|
||||
status
|
||||
end
|
||||
|
|
|
@ -853,6 +853,22 @@ module Test
|
|||
end
|
||||
end
|
||||
|
||||
module RepeatOption # :nodoc: all
|
||||
def setup_options(parser, options)
|
||||
super
|
||||
options[:repeat_count] = nil
|
||||
parser.separator "repeat options:"
|
||||
parser.on '--repeat-count=NUM', "Number of times to repeat", Integer do |n|
|
||||
options[:repeat_count] = n
|
||||
end
|
||||
end
|
||||
|
||||
def _run_anything(type)
|
||||
@repeat_count = @options[:repeat_count]
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
module ExcludesOption # :nodoc: all
|
||||
class ExcludedMethods < Struct.new(:excludes)
|
||||
def exclude(name, reason)
|
||||
|
@ -922,6 +938,7 @@ module Test
|
|||
include Test::Unit::Parallel
|
||||
include Test::Unit::Skipping
|
||||
include Test::Unit::GlobOption
|
||||
include Test::Unit::RepeatOption
|
||||
include Test::Unit::LoadPathOption
|
||||
include Test::Unit::GCStressOption
|
||||
include Test::Unit::ExcludesOption
|
||||
|
|
Загрузка…
Ссылка в новой задаче