class Cucumber::Filters::Randomizer
Batches up all test cases, randomizes them, and then sends them on
Attributes
seed[R]
Public Class Methods
new(seed, receiver=nil)
click to toggle source
# File lib/cucumber/filters/randomizer.rb, line 8 def initialize(seed, receiver=nil) @receiver = receiver @test_cases = [] @seed = seed end
Public Instance Methods
done()
click to toggle source
# File lib/cucumber/filters/randomizer.rb, line 19 def done shuffled_test_cases.each do |test_case| test_case.describe_to(@receiver) end @receiver.done self end
test_case(test_case)
click to toggle source
# File lib/cucumber/filters/randomizer.rb, line 14 def test_case(test_case) @test_cases << test_case self end
with_receiver(receiver)
click to toggle source
# File lib/cucumber/filters/randomizer.rb, line 27 def with_receiver(receiver) self.class.new(@seed, receiver) end
Private Instance Methods
shuffled_test_cases()
click to toggle source
# File lib/cucumber/filters/randomizer.rb, line 33 def shuffled_test_cases digester = Digest::SHA2.new(256) @test_cases.map.with_index. sort_by { |_, index| digester.digest((@seed + index).to_s) }. map { |test_case, _| test_case } end