Sha256: f30fcb4c2e228912d2f50323ea6efe6a3e475a6c276b15246d3937537b2ad9bb

Contents?: true

Size: 1.61 KB

Versions: 36

Compression:

Stored size: 1.61 KB

Contents

require 'spec_helper'
require 'parallel_tests/grouper'
require 'tmpdir'

describe ParallelTests::Grouper do
  describe :by_steps do
    def write(file, content)
      File.open(file,'w'){|f| f.write content }
    end

    it "sorts features by steps" do
      tmpdir = nil
      result = Dir.mktmpdir do |dir|
        tmpdir = dir
        write("#{dir}/a.feature", "Feature: xxx\n  Scenario: xxx\n    Given something")
        write("#{dir}/b.feature", "Feature: xxx\n  Scenario: xxx\n    Given something\n  Scenario: yyy\n    Given something")
        write("#{dir}/c.feature", "Feature: xxx\n  Scenario: xxx\n    Given something")
        ParallelTests::Grouper.by_steps(["#{dir}/a.feature", "#{dir}/b.feature", "#{dir}/c.feature"], 2, {})
      end

      # testing inside mktmpdir is always green
      result.should =~ [
        ["#{tmpdir}/a.feature", "#{tmpdir}/c.feature"],
        ["#{tmpdir}/b.feature"]
      ]
    end
  end

  describe :in_even_groups_by_size do
    let(:files_with_size){ {"1" => 1, "2" => 2, "3" => 3, "4" => 4, "5" => 5} }

    def call(num_groups)
      ParallelTests::Grouper.in_even_groups_by_size(files_with_size, num_groups)
    end

    it "groups 1 by 1 for same groups as size" do
      call(5).should == [["5"], ["4"], ["3"], ["2"], ["1"]]
    end

    it "groups into even groups" do
      call(2).should ==  [["1", "2", "5"], ["3", "4"]]
    end

    it "groups into a single group" do
      call(1).should == [["1", "2", "3", "4", "5"]]
    end

    it "adds empty groups if there are more groups than feature files" do
      call(6).should == [["5"], ["4"], ["3"], ["2"], ["1"], []]
    end
  end
end

Version data entries

36 entries across 36 versions & 2 rubygems

Version Path
parallel_tests-0.16.3 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.16.2 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.16.1 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.16.0 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.15.4 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.15.3 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.15.2 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.15.1 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.15.0 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.14.0 spec/parallel_tests/grouper_spec.rb
vinted-parallel_tests-0.13.3 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.13.3 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.13.2 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.13.1 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.13.0 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.12.4 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.12.3 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.12.2 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.12.1 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.12.0 spec/parallel_tests/grouper_spec.rb