test_suite_splitter 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{README.rdoc → README.md} +19 -4
- data/Rakefile +0 -27
- data/bin/test_suite_splitter +16 -8
- data/lib/test_suite_splitter/rspec_helper.rb +7 -3
- metadata +8 -31
- data/.document +0 -5
- data/.rubocop.yml +0 -195
- data/Gemfile +0 -18
- data/Gemfile.lock +0 -126
- data/VERSION +0 -1
- data/peak_flow.yml +0 -4
- data/spec/spec_helper.rb +0 -96
- data/spec/test_suite_splitter/rspec_helper/nemoa_rspec_output.json +0 -14027
- data/spec/test_suite_splitter/rspec_helper_spec.rb +0 -97
- data/test_suite_splitter.gemspec +0 -65
@@ -1,97 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe TestSuiteSplitter::RspecHelper do
|
4
|
-
describe "#rspec_options" do
|
5
|
-
it "forwards the tag command to rspec" do
|
6
|
-
helper = TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 2, tags: ["~@firefox_skip", "asd"])
|
7
|
-
rspec_options = helper.__send__(:rspec_options)
|
8
|
-
expect(rspec_options).to eq ["--dry-run", "--format", "json", "--tag", "~@firefox_skip", "--tag", "asd", "spec"]
|
9
|
-
end
|
10
|
-
|
11
|
-
it "doesnt include the tag argument if nothing is given" do
|
12
|
-
helper = TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 2)
|
13
|
-
rspec_options = helper.__send__(:rspec_options)
|
14
|
-
expect(rspec_options).to eq ["--dry-run", "--format", "json", "spec"]
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
it "selects only given types" do
|
19
|
-
helper = TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 2, only_types: ["system"])
|
20
|
-
|
21
|
-
ignore_models = helper.__send__(:ignore_type?, "models")
|
22
|
-
ignore_system = helper.__send__(:ignore_type?, "system")
|
23
|
-
|
24
|
-
expect(ignore_models).to eq true
|
25
|
-
expect(ignore_system).to eq false
|
26
|
-
end
|
27
|
-
|
28
|
-
describe "#ignore_type?" do
|
29
|
-
it "ignores types not given" do
|
30
|
-
helper = TestSuiteSplitter::RspecHelper.new(groups: 1, group_number: 1, only_types: ["system"])
|
31
|
-
|
32
|
-
expect(helper.__send__(:ignore_type?, "system")).to eq false
|
33
|
-
expect(helper.__send__(:ignore_type?, "model")).to eq true
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe "#sorted_files" do
|
38
|
-
it "falls back to sort the files by name" do
|
39
|
-
helper = TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 2)
|
40
|
-
|
41
|
-
expect(helper).to receive(:files).and_return(
|
42
|
-
"specs/file_b_spec.rb" => {
|
43
|
-
examples: 1,
|
44
|
-
path: "specs/file_b_spec.rb",
|
45
|
-
points: 1
|
46
|
-
},
|
47
|
-
"specs/file_c_spec.rb" => {
|
48
|
-
examples: 1,
|
49
|
-
path: "specs/file_c_spec.rb",
|
50
|
-
points: 1
|
51
|
-
},
|
52
|
-
"specs/file_a_spec.rb" => {
|
53
|
-
examples: 1,
|
54
|
-
path: "specs/file_a_spec.rb",
|
55
|
-
points: 1
|
56
|
-
}
|
57
|
-
)
|
58
|
-
|
59
|
-
files = helper.sorted_files.map { |file| file.fetch(:path) }
|
60
|
-
|
61
|
-
expect(files).to eq [
|
62
|
-
"specs/file_a_spec.rb",
|
63
|
-
"specs/file_b_spec.rb",
|
64
|
-
"specs/file_c_spec.rb"
|
65
|
-
]
|
66
|
-
end
|
67
|
-
|
68
|
-
it "doesnt duplicate the same specs in multiple groups" do
|
69
|
-
require "json"
|
70
|
-
|
71
|
-
helpers = [
|
72
|
-
TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 1),
|
73
|
-
TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 2),
|
74
|
-
TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 3),
|
75
|
-
TestSuiteSplitter::RspecHelper.new(groups: 4, group_number: 4)
|
76
|
-
]
|
77
|
-
|
78
|
-
nemoa_rspec_output = JSON.parse(File.read("spec/test_suite_splitter/rspec_helper/nemoa_rspec_output.json"))
|
79
|
-
|
80
|
-
expect(helpers).to all(receive(:dry_result).and_return(nemoa_rspec_output))
|
81
|
-
|
82
|
-
file_groups = helpers.map { |helper| helper.__send__(:group_files) }
|
83
|
-
|
84
|
-
file_groups.each_with_index do |file_group1, index1|
|
85
|
-
file_group1.each do |file_name1|
|
86
|
-
file_groups.each_with_index do |file_group2, index2|
|
87
|
-
next if index1 == index2
|
88
|
-
|
89
|
-
file_group2.each do |file_name2|
|
90
|
-
raise "Found fine in both #{index1} and #{index2}: #{file_name1}" if file_name1 == file_name2
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
data/test_suite_splitter.gemspec
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
# Generated by juwelier
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: test_suite_splitter 0.0.1 ruby lib
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.name = "test_suite_splitter".freeze
|
9
|
-
s.version = "0.0.1"
|
10
|
-
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
-
s.require_paths = ["lib".freeze]
|
13
|
-
s.authors = ["kaspernj".freeze]
|
14
|
-
s.date = "2021-11-17"
|
15
|
-
s.description = "Split your RSpec test suite up into several groups and run them in parallel.".freeze
|
16
|
-
s.email = "k@spernj.org".freeze
|
17
|
-
s.executables = ["test_suite_splitter".freeze]
|
18
|
-
s.extra_rdoc_files = [
|
19
|
-
"LICENSE.txt",
|
20
|
-
"README.rdoc"
|
21
|
-
]
|
22
|
-
s.files = [
|
23
|
-
".document",
|
24
|
-
".rubocop.yml",
|
25
|
-
"Gemfile",
|
26
|
-
"Gemfile.lock",
|
27
|
-
"LICENSE.txt",
|
28
|
-
"README.rdoc",
|
29
|
-
"Rakefile",
|
30
|
-
"VERSION",
|
31
|
-
"bin/test_suite_splitter",
|
32
|
-
"lib/test_suite_splitter.rb",
|
33
|
-
"lib/test_suite_splitter/rspec_helper.rb",
|
34
|
-
"peak_flow.yml",
|
35
|
-
"spec/spec_helper.rb",
|
36
|
-
"spec/test_suite_splitter/rspec_helper/nemoa_rspec_output.json",
|
37
|
-
"spec/test_suite_splitter/rspec_helper_spec.rb",
|
38
|
-
"test_suite_splitter.gemspec"
|
39
|
-
]
|
40
|
-
s.homepage = "http://github.com/kaspernj/test_suite_splitter".freeze
|
41
|
-
s.licenses = ["MIT".freeze]
|
42
|
-
s.rubygems_version = "3.1.6".freeze
|
43
|
-
s.summary = "Split your RSpec test suite up into several groups and run them in parallel.".freeze
|
44
|
-
|
45
|
-
if s.respond_to? :specification_version then
|
46
|
-
s.specification_version = 4
|
47
|
-
end
|
48
|
-
|
49
|
-
if s.respond_to? :add_runtime_dependency then
|
50
|
-
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
|
51
|
-
s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
|
52
|
-
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
53
|
-
s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
|
54
|
-
s.add_development_dependency(%q<rubocop-performance>.freeze, [">= 0"])
|
55
|
-
s.add_development_dependency(%q<rubocop-rspec>.freeze, [">= 0"])
|
56
|
-
else
|
57
|
-
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
58
|
-
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
59
|
-
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
60
|
-
s.add_dependency(%q<rubocop>.freeze, [">= 0"])
|
61
|
-
s.add_dependency(%q<rubocop-performance>.freeze, [">= 0"])
|
62
|
-
s.add_dependency(%q<rubocop-rspec>.freeze, [">= 0"])
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|