Sha256: f7c1492bea1c3580dcb2fa754d3a20ea44b10b8918b6e8c2f259e654015a3c38

Contents?: true

Size: 1.84 KB

Versions: 12

Compression:

Stored size: 1.84 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

  describe :in_groups do
    it "groups" do
      ParallelTests::Grouper.in_groups([1,2,3],2).should == [[1,3],[2]]
    end

    it "keeps groups sorted" do
      ParallelTests::Grouper.in_groups([3,2,1],2).should == [[1,3],[2]]
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
parallel_tests-0.8.14 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.13 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.12 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.11 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.10 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.9 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.8 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.7 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.6 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.5 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.4 spec/parallel_tests/grouper_spec.rb
parallel_tests-0.8.3 spec/parallel_tests/grouper_spec.rb