Class: RSpec::Queue::Runner

Inherits:
Core::Runner
  • Object
show all
Includes:
CI::Queue::OutputHelpers
Defined in:
lib/rspec/queue.rb

Instance Method Summary collapse

Instance Method Details

#run_specs(example_groups) ⇒ Object



155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/rspec/queue.rb', line 155

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)
  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.with_suite_hooks do
      queue.poll do |example|
        success &= example.run(reporter)
        queue.acknowledge(example)
      end
    end
  end

  success &= !@world.non_example_failure
  success ? 0 : @configuration.failure_exit_code
end

#setup(err, out) ⇒ Object



148
149
150
151
152
153
# File 'lib/rspec/queue.rb', line 148

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
end