class RSpec::Queue::Runner
Public Instance Methods
run_specs(example_groups)
click to toggle source
# File lib/rspec/queue.rb, line 364 def run_specs(example_groups) examples = example_groups.flat_map(&:descendants).flat_map do |example_group| example_group.filtered_examples.map do |example| SingleExample.new(example_group, example) end end queue = CI::Queue.from_uri(queue_url, RSpec::Queue.config) if queue.retrying? retry_queue = queue.retry_queue if retry_queue.exhausted? puts "Found 0 tests to retry, processing the main queue." else puts "Retrying #{retry_queue.size} failed tests." queue = retry_queue end end BuildStatusRecorder.build = queue.build queue.populate(examples, random: ordering_seed, &:id) examples_count = examples.size # TODO: figure out which stub value would be best success = true @configuration.reporter.report(examples_count) do |reporter| @configuration.add_formatter(BuildStatusRecorder) FileUtils.mkdir_p('log') @configuration.add_formatter(OrderRecorder, open('log/test_order.log', 'w+')) @configuration.with_suite_hooks do break if @world.wants_to_quit queue.poll do |example| success &= example.run(QueueReporter.new(reporter, queue, example)) break if @world.wants_to_quit end end end return 0 if @world.non_example_failure success ? 0 : @configuration.failure_exit_code end
setup(err, out)
click to toggle source
Calls superclass method
# File lib/rspec/queue.rb, line 356 def setup(err, out) super invalid_usage!('Missing --queue parameter') unless queue_url invalid_usage!('Missing --build parameter') unless RSpec::Queue.config.build_id invalid_usage!('Missing --worker parameter') unless RSpec::Queue.config.worker_id RSpec.configuration.backtrace_formatter.filter_gem('ci-queue') end
Private Instance Methods
ordering_seed()
click to toggle source
# File lib/rspec/queue.rb, line 407 def ordering_seed if RSpec::Queue.config.seed Random.new(Digest::MD5.hexdigest(RSpec::Queue.config.seed).to_i(16)) else Random.new end end