Sha256: 5c114c2322b5a57b62353840af73e291098a0e3d5daf6257d8f7bcec19ccbfec

Contents?: true

Size: 1.75 KB

Versions: 6

Compression:

Stored size: 1.75 KB

Contents

require "parallel_tests/cucumber/runner"
require "sauce/logging"

module ParallelTests
  module Saucecucumber
    class Runner < ParallelTests::Cucumber::Runner

      def self.run_tests(test_files, process_number, num_processes, options)
        our_options = options.dup
        sanitized_test_files = test_files.map { |val| Shellwords.escape(val) }
        env = Sauce::TestBroker.next_environment(test_files)
        env.merge!({"AUTOTEST" => "1"}) if $stdout.tty? # display color when we are in a terminal
        our_options.merge!({:env => env})
        cmd = [
            executable,
            (runtime_logging if File.directory?(File.dirname(runtime_log))),
            cucumber_opts(our_options[:test_options]),
            *sanitized_test_files
        ].compact.join(" ")
        Sauce.logger.debug "Starting parallel process #{process_number} of #{num_processes}"
        Sauce.logger.debug "  #{cmd}"
        Sauce.logger.debug "  #{our_options}"
        execute_command(cmd, process_number, num_processes, our_options)
      end

      def self.tests_in_groups(tests, num_groups, options={})
        originals = (options[:group_by] == :steps) ? Grouper.by_steps(find_tests(tests, options), num_groups, options) : super
        all_tests = originals.flatten * Sauce::TestBroker.test_platforms(:cucumber).length
        base_group_size = all_tests.length / num_groups
        num_full_groups = all_tests.length - (base_group_size * num_groups)

        curpos = 0
        groups = []
        num_groups.times do |i|
          group_size = base_group_size
          if i < num_full_groups
            group_size += 1
          end
          groups << all_tests.slice(curpos, group_size)
          curpos += group_size
        end

        groups
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sauce-3.7.2 lib/parallel_tests/saucecucumber/runner.rb
sauce-3.7.1 lib/parallel_tests/saucecucumber/runner.rb
sauce-3.7.0 lib/parallel_tests/saucecucumber/runner.rb
sauce-3.5.11 lib/parallel_tests/saucecucumber/runner.rb
sauce-3.5.10 lib/parallel_tests/saucecucumber/runner.rb
sauce-3.5.9 lib/parallel_tests/saucecucumber/runner.rb