knapsack_pro 9.0.0 → 9.2.0

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.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/lib/knapsack_pro/adapters/base_adapter.rb +1 -17
  3. data/lib/knapsack_pro/adapters/minitest_adapter.rb +8 -13
  4. data/lib/knapsack_pro/adapters/rspec_adapter.rb +11 -9
  5. data/lib/knapsack_pro/build_distribution_fetcher.rb +22 -18
  6. data/lib/knapsack_pro/client/api/v1/build_distributions.rb +2 -7
  7. data/lib/knapsack_pro/client/api/v1/queues.rb +27 -0
  8. data/lib/knapsack_pro/client/connection.rb +1 -1
  9. data/lib/knapsack_pro/config/env.rb +9 -32
  10. data/lib/knapsack_pro/queue_allocator.rb +2 -1
  11. data/lib/knapsack_pro/queue_initializer.rb +21 -0
  12. data/lib/knapsack_pro/regular_allocator.rb +2 -1
  13. data/lib/knapsack_pro/rspec_slow_test_file_finder.rb +20 -0
  14. data/lib/knapsack_pro/slow_test_file_determiner.rb +0 -22
  15. data/lib/knapsack_pro/test_case_detectors/rspec_test_example_detector.rb +43 -69
  16. data/lib/knapsack_pro/test_case_mergers/rspec_merger.rb +19 -31
  17. data/lib/knapsack_pro/test_file_finder.rb +15 -42
  18. data/lib/knapsack_pro/test_file_presenter.rb +4 -0
  19. data/lib/knapsack_pro/test_suite.rb +8 -35
  20. data/lib/knapsack_pro/version.rb +1 -1
  21. data/lib/knapsack_pro.rb +1 -3
  22. data/lib/tasks/queue/rspec.rake +12 -0
  23. data/lib/tasks/rspec.rake +8 -4
  24. metadata +9 -204
  25. data/.circleci/config.yml +0 -468
  26. data/.github/assets/install-button.png +0 -0
  27. data/.github/assets/knapsack-diamonds.png +0 -0
  28. data/.github/dependabot.yml +0 -11
  29. data/.github/pull_request_template.md +0 -11
  30. data/.gitignore +0 -39
  31. data/.rspec +0 -5
  32. data/CHANGELOG.md +0 -1995
  33. data/Gemfile +0 -13
  34. data/LICENSE +0 -22
  35. data/README.md +0 -90
  36. data/Rakefile +0 -2
  37. data/knapsack_pro.gemspec +0 -43
  38. data/lib/knapsack_pro/slow_test_file_finder.rb +0 -29
  39. data/lib/knapsack_pro/test_case_mergers/base_merger.rb +0 -31
  40. data/lib/knapsack_pro/test_files_with_test_cases_composer.rb +0 -24
  41. data/spec/fixtures/test_file_list_source_file.txt +0 -6
  42. data/spec/fixtures/vcr_cassettes/api/v1/build_distributions/subset/invalid_test_suite_token.yml +0 -59
  43. data/spec/fixtures/vcr_cassettes/api/v1/build_distributions/subset/success.yml +0 -61
  44. data/spec/fixtures/vcr_cassettes/api/v1/build_subsets/create/invalid_test_suite_token.yml +0 -50
  45. data/spec/fixtures/vcr_cassettes/api/v1/build_subsets/create/success.yml +0 -50
  46. data/spec/integration/api/build_distributions_subset_spec.rb +0 -77
  47. data/spec/integration/api/build_subsets_create_spec.rb +0 -77
  48. data/spec/integration/runners/fallback_spec.rb +0 -131
  49. data/spec/integration/runners/queue/cucumber_runner_fallback_spec.rb +0 -129
  50. data/spec/integration/runners/queue/minitest_runner_fallback_spec.rb +0 -129
  51. data/spec/integration/runners/queue/rspec_runner.rb +0 -80
  52. data/spec/integration/runners/queue/rspec_runner_fallback_spec.rb +0 -137
  53. data/spec/integration/runners/queue/rspec_runner_spec.rb +0 -2672
  54. data/spec/knapsack_pro/adapters/base_adapter_spec.rb +0 -221
  55. data/spec/knapsack_pro/adapters/cucumber_adapter_spec.rb +0 -216
  56. data/spec/knapsack_pro/adapters/minitest_adapter_spec.rb +0 -189
  57. data/spec/knapsack_pro/adapters/rspec_adapter_spec.rb +0 -427
  58. data/spec/knapsack_pro/adapters/spinach_adapter_spec.rb +0 -61
  59. data/spec/knapsack_pro/adapters/test_unit_adapter_spec.rb +0 -86
  60. data/spec/knapsack_pro/base_allocator_builder_spec.rb +0 -102
  61. data/spec/knapsack_pro/build_distribution_fetcher_spec.rb +0 -89
  62. data/spec/knapsack_pro/client/api/action_spec.rb +0 -17
  63. data/spec/knapsack_pro/client/api/v1/base_spec.rb +0 -2
  64. data/spec/knapsack_pro/client/api/v1/build_distributions_spec.rb +0 -95
  65. data/spec/knapsack_pro/client/api/v1/build_subsets_spec.rb +0 -35
  66. data/spec/knapsack_pro/client/api/v1/queues_spec.rb +0 -83
  67. data/spec/knapsack_pro/client/connection_spec.rb +0 -581
  68. data/spec/knapsack_pro/config/ci/app_veyor_spec.rb +0 -87
  69. data/spec/knapsack_pro/config/ci/base_spec.rb +0 -10
  70. data/spec/knapsack_pro/config/ci/buildkite_spec.rb +0 -135
  71. data/spec/knapsack_pro/config/ci/circle_spec.rb +0 -122
  72. data/spec/knapsack_pro/config/ci/cirrus_ci_spec.rb +0 -87
  73. data/spec/knapsack_pro/config/ci/codefresh_spec.rb +0 -81
  74. data/spec/knapsack_pro/config/ci/codeship_spec.rb +0 -80
  75. data/spec/knapsack_pro/config/ci/github_actions_spec.rb +0 -140
  76. data/spec/knapsack_pro/config/ci/gitlab_ci_spec.rb +0 -137
  77. data/spec/knapsack_pro/config/ci/heroku_spec.rb +0 -87
  78. data/spec/knapsack_pro/config/ci/semaphore2_spec.rb +0 -133
  79. data/spec/knapsack_pro/config/ci/semaphore_spec.rb +0 -87
  80. data/spec/knapsack_pro/config/ci/travis_spec.rb +0 -73
  81. data/spec/knapsack_pro/config/env_generator_spec.rb +0 -52
  82. data/spec/knapsack_pro/config/env_spec.rb +0 -1291
  83. data/spec/knapsack_pro/config/temp_files_spec.rb +0 -25
  84. data/spec/knapsack_pro/crypto/branch_encryptor_spec.rb +0 -53
  85. data/spec/knapsack_pro/crypto/decryptor_spec.rb +0 -83
  86. data/spec/knapsack_pro/crypto/digestor_spec.rb +0 -13
  87. data/spec/knapsack_pro/crypto/encryptor_spec.rb +0 -58
  88. data/spec/knapsack_pro/formatters/time_tracker_fetcher_spec.rb +0 -27
  89. data/spec/knapsack_pro/formatters/time_tracker_spec.rb +0 -448
  90. data/spec/knapsack_pro/hooks/queue_spec.rb +0 -199
  91. data/spec/knapsack_pro/presenter_spec.rb +0 -57
  92. data/spec/knapsack_pro/pure/queue/rspec_pure_spec.rb +0 -248
  93. data/spec/knapsack_pro/queue_spec.rb +0 -35
  94. data/spec/knapsack_pro/report_spec.rb +0 -232
  95. data/spec/knapsack_pro/repository_adapter_initiator_spec.rb +0 -21
  96. data/spec/knapsack_pro/repository_adapters/base_adapter_spec.rb +0 -13
  97. data/spec/knapsack_pro/repository_adapters/env_adapter_spec.rb +0 -27
  98. data/spec/knapsack_pro/repository_adapters/git_adapter_spec.rb +0 -106
  99. data/spec/knapsack_pro/runners/base_runner_spec.rb +0 -87
  100. data/spec/knapsack_pro/runners/cucumber_runner_spec.rb +0 -92
  101. data/spec/knapsack_pro/runners/minitest_runner_spec.rb +0 -57
  102. data/spec/knapsack_pro/runners/queue/base_runner_spec.rb +0 -73
  103. data/spec/knapsack_pro/runners/queue/cucumber_runner_spec.rb +0 -209
  104. data/spec/knapsack_pro/runners/queue/minitest_runner_spec.rb +0 -203
  105. data/spec/knapsack_pro/runners/rspec_runner_spec.rb +0 -111
  106. data/spec/knapsack_pro/runners/spinach_runner_spec.rb +0 -56
  107. data/spec/knapsack_pro/runners/test_unit_runner_spec.rb +0 -62
  108. data/spec/knapsack_pro/slow_test_file_determiner_spec.rb +0 -119
  109. data/spec/knapsack_pro/slow_test_file_finder_spec.rb +0 -42
  110. data/spec/knapsack_pro/task_loader_spec.rb +0 -14
  111. data/spec/knapsack_pro/test_case_detectors/rspec_test_example_detector_spec.rb +0 -217
  112. data/spec/knapsack_pro/test_case_mergers/base_merger_spec.rb +0 -27
  113. data/spec/knapsack_pro/test_case_mergers/rspec_merger_spec.rb +0 -81
  114. data/spec/knapsack_pro/test_file_cleaner_spec.rb +0 -11
  115. data/spec/knapsack_pro/test_file_finder_spec.rb +0 -176
  116. data/spec/knapsack_pro/test_file_pattern_spec.rb +0 -49
  117. data/spec/knapsack_pro/test_file_presenter_spec.rb +0 -22
  118. data/spec/knapsack_pro/test_files_with_test_cases_composer_spec.rb +0 -41
  119. data/spec/knapsack_pro/test_flat_distributor_spec.rb +0 -60
  120. data/spec/knapsack_pro/tracker_spec.rb +0 -184
  121. data/spec/knapsack_pro/utils_spec.rb +0 -55
  122. data/spec/knapsack_pro_spec.rb +0 -116
  123. data/spec/spec_helper.rb +0 -47
  124. data/spec/support/.gitkeep +0 -0
  125. data/spec/support/fakes/cucumber.rb +0 -25
  126. data/spec/support/fakes/minitest.rb +0 -18
  127. data/spec/support/shared_examples/adapter.rb +0 -17
  128. data/spec_fake/controllers/users_controller_spec.rb +0 -0
  129. data/spec_fake/models/admin_spec.rb +0 -0
  130. data/spec_fake/models/user_spec.rb +0 -0
  131. data/spec_fake/spec_helper.rb +0 -0
  132. data/spec_time_tracker/spec_helper.rb +0 -29
  133. data/test_fake/a_test.rb +0 -0
  134. data/test_fake/b_test.rb +0 -0
@@ -6,41 +6,22 @@ module KnapsackPro
6
6
  new(test_file_pattern, test_file_list_enabled).call
7
7
  end
8
8
 
9
- # finds slow test files on disk based on ENV patterns
10
- # returns example: [{ 'path' => 'a_spec.rb' }]
11
9
  def self.slow_test_files_by_pattern(adapter_class)
12
10
  raise 'KNAPSACK_PRO_SLOW_TEST_FILE_PATTERN is not defined' unless KnapsackPro::Config::Env.slow_test_file_pattern
13
11
 
14
12
  test_file_pattern = KnapsackPro::TestFilePattern.call(adapter_class)
15
- test_file_entities = call(test_file_pattern)
16
-
17
- slow_test_file_entities = call(KnapsackPro::Config::Env.slow_test_file_pattern, test_file_list_enabled: false)
18
-
19
- # slow test files (KNAPSACK_PRO_SLOW_TEST_FILE_PATTERN)
20
- # should be subset of test file pattern (KNAPSACK_PRO_TEST_FILE_PATTERN)
21
- slow_test_file_entities & test_file_entities
13
+ scheduled_test_files = call(test_file_pattern)
14
+ slow_test_files = call(KnapsackPro::Config::Env.slow_test_file_pattern, test_file_list_enabled: false)
15
+ scheduled_test_files & slow_test_files
22
16
  end
23
17
 
24
- # Args:
25
- # test_file_entities_to_run - it can be list of slow test files that you want to run
26
- # Return:
27
- # subset of test_file_entities_to_run that are present on disk and it is subset of tests matching pattern KNAPSACK_PRO_TEST_FILE_PATTERN
28
- # Thanks to that we can select only slow test files that are within list of test file pattern we want to run tests for
29
- def self.select_test_files_that_can_be_run(adapter_class, test_file_entities_to_run)
18
+ def self.select_test_files_that_can_be_run(adapter_class, candidate_test_files)
30
19
  test_file_pattern = KnapsackPro::TestFilePattern.call(adapter_class)
31
- test_file_entities = call(test_file_pattern)
32
-
33
- test_file_paths_existing_on_disk = KnapsackPro::TestFilePresenter.paths(test_file_entities)
34
-
35
- selected_test_files = []
36
-
37
- test_file_entities_to_run.each do |test_file_entity|
38
- if test_file_paths_existing_on_disk.include?(test_file_entity.fetch('path'))
39
- selected_test_files << test_file_entity
40
- end
41
- end
42
-
43
- selected_test_files
20
+ scheduled_test_files = call(test_file_pattern)
21
+ scheduled_paths = KnapsackPro::TestFilePresenter.paths(scheduled_test_files)
22
+ candidate_paths = KnapsackPro::TestFilePresenter.paths(candidate_test_files)
23
+ paths = scheduled_paths & candidate_paths
24
+ candidate_test_files.filter { |test_file| paths.include? test_file.fetch('path') }
44
25
  end
45
26
 
46
27
  def initialize(test_file_pattern, test_file_list_enabled)
@@ -49,18 +30,16 @@ module KnapsackPro
49
30
  end
50
31
 
51
32
  def call
52
- test_file_hashes = []
53
- test_files.each do |test_file_path|
54
- test_file_hashes << test_file_hash_for(test_file_path)
33
+ file_paths.map do |file_path|
34
+ { 'path' => TestFileCleaner.clean(file_path) }
55
35
  end
56
- test_file_hashes
57
36
  end
58
37
 
59
38
  private
60
39
 
61
40
  attr_reader :test_file_pattern, :test_file_list_enabled
62
41
 
63
- def test_files
42
+ def file_paths
64
43
  if test_file_list_enabled && KnapsackPro::Config::Env.test_file_list
65
44
  return KnapsackPro::Config::Env.test_file_list.split(',').map(&:strip)
66
45
  end
@@ -69,22 +48,16 @@ module KnapsackPro
69
48
  return File.read(KnapsackPro::Config::Env.test_file_list_source_file).split(/\n/)
70
49
  end
71
50
 
72
- test_file_paths = Dir.glob(test_file_pattern).uniq
51
+ included_paths = Dir.glob(test_file_pattern).uniq
73
52
 
74
- excluded_test_file_paths =
53
+ excluded_paths =
75
54
  if KnapsackPro::Config::Env.test_file_exclude_pattern
76
55
  Dir.glob(KnapsackPro::Config::Env.test_file_exclude_pattern).uniq
77
56
  else
78
57
  []
79
58
  end
80
59
 
81
- (test_file_paths - excluded_test_file_paths).sort
82
- end
83
-
84
- def test_file_hash_for(test_file_path)
85
- {
86
- 'path' => TestFileCleaner.clean(test_file_path)
87
- }
60
+ (included_paths - excluded_paths).sort
88
61
  end
89
62
  end
90
63
  end
@@ -12,5 +12,9 @@ module KnapsackPro
12
12
  def self.paths(test_files)
13
13
  test_files.map { |t| t['path'] }
14
14
  end
15
+
16
+ def self.test_files(paths)
17
+ paths.map { |path| { 'path' => path } }
18
+ end
15
19
  end
16
20
  end
@@ -8,8 +8,6 @@ module KnapsackPro
8
8
  @adapter_class = adapter_class
9
9
  end
10
10
 
11
- # Detect test files present on the disk that should be run.
12
- # This may include fast test files + slow test files split by test cases.
13
11
  def calculate_test_files
14
12
  return @result if defined?(@result)
15
13
 
@@ -17,47 +15,22 @@ module KnapsackPro
17
15
  return @result = Result.new(all_test_files_to_run, true)
18
16
  end
19
17
 
20
- slow_test_files, quick =
21
- if slow_test_file_pattern
22
- [KnapsackPro::TestFileFinder.slow_test_files_by_pattern(adapter_class), true]
23
- else
24
- [KnapsackPro::SlowTestFileFinder.call(adapter_class), false]
25
- end
26
-
27
- KnapsackPro.logger.debug("Detected #{slow_test_files.size} slow test files: #{slow_test_files.inspect}")
28
-
29
- if slow_test_files.empty?
30
- return @result = Result.new(all_test_files_to_run, quick)
18
+ if KnapsackPro::Config::Env.slow_test_file_pattern
19
+ slow_test_files = KnapsackPro::TestFileFinder.slow_test_files_by_pattern(adapter_class)
20
+ return @result = Result.new(all_test_files_to_run, true) if slow_test_files.empty?
31
21
  end
32
22
 
33
- test_file_cases = adapter_class.test_file_cases_for(slow_test_files)
34
-
35
- fast_files_and_cases_for_slow_tests = KnapsackPro::TestFilesWithTestCasesComposer.call(all_test_files_to_run, slow_test_files, test_file_cases)
36
-
37
- @result = Result.new(fast_files_and_cases_for_slow_tests, false)
23
+ slow_id_paths = adapter_class.calculate_slow_id_paths
24
+ test_files = adapter_class.concat_paths(all_test_files_to_run, slow_id_paths)
25
+ @result = Result.new(test_files, false)
38
26
  end
39
27
 
40
- # In Fallback Mode, we always want to run whole test files (not split by
41
- # test cases) to guarantee that each test will be executed at least once
42
- # across parallel CI nodes.
43
- def fallback_test_files
44
- all_test_files_to_run
28
+ def all_test_files_to_run
29
+ @all_test_files_to_run ||= KnapsackPro::TestFileFinder.call(TestFilePattern.call(adapter_class))
45
30
  end
46
31
 
47
32
  private
48
33
 
49
34
  attr_reader :adapter_class
50
-
51
- def all_test_files_to_run
52
- @all_test_files_to_run ||= KnapsackPro::TestFileFinder.call(test_file_pattern)
53
- end
54
-
55
- def test_file_pattern
56
- TestFilePattern.call(adapter_class)
57
- end
58
-
59
- def slow_test_file_pattern
60
- KnapsackPro::Config::Env.slow_test_file_pattern
61
- end
62
35
  end
63
36
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KnapsackPro
4
- VERSION = '9.0.0'
4
+ VERSION = '9.2.0'
5
5
  end
data/lib/knapsack_pro.rb CHANGED
@@ -58,12 +58,10 @@ require_relative 'knapsack_pro/regular_allocator'
58
58
  require_relative 'knapsack_pro/queue_allocator'
59
59
  require_relative 'knapsack_pro/mask_string'
60
60
  require_relative 'knapsack_pro/test_suite'
61
- require_relative 'knapsack_pro/test_case_mergers/base_merger'
62
61
  require_relative 'knapsack_pro/test_case_mergers/rspec_merger'
63
62
  require_relative 'knapsack_pro/build_distribution_fetcher'
64
63
  require_relative 'knapsack_pro/slow_test_file_determiner'
65
- require_relative 'knapsack_pro/slow_test_file_finder'
66
- require_relative 'knapsack_pro/test_files_with_test_cases_composer'
64
+ require_relative 'knapsack_pro/rspec_slow_test_file_finder'
67
65
  require_relative 'knapsack_pro/base_allocator_builder'
68
66
  require_relative 'knapsack_pro/regular_allocator_builder'
69
67
  require_relative 'knapsack_pro/queue_allocator_builder'
@@ -12,5 +12,17 @@ namespace :knapsack_pro do
12
12
  Rake::Task.clear
13
13
  KnapsackPro::Runners::Queue::RSpecRunner.run(args[:rspec_args])
14
14
  end
15
+
16
+ namespace :rspec do
17
+ desc 'Initialize the test queue to be consumed later.'
18
+ task :initialize, [:rspec_args] do |_, args|
19
+ require_relative '../../knapsack_pro/queue_initializer'
20
+
21
+ ENV.delete('SPEC_OPTS') # Ignore `SPEC_OPTS` to not affect the RSpec execution within this rake task
22
+ ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN'] = KnapsackPro::Config::Env.test_suite_token_rspec
23
+
24
+ KnapsackPro::RSpec::QueueInitializer.new.call(args[:rspec_args].to_s)
25
+ end
26
+ end
15
27
  end
16
28
  end
data/lib/tasks/rspec.rake CHANGED
@@ -7,12 +7,16 @@ namespace :knapsack_pro do
7
7
  KnapsackPro::Runners::RSpecRunner.run(args[:rspec_args])
8
8
  end
9
9
 
10
- desc "Generate JSON report for test suite based on default test pattern or based on defined pattern with ENV vars"
10
+ # private
11
11
  task :rspec_test_example_detector do
12
- # ignore the `SPEC_OPTS` options to not affect RSpec execution within this rake task
12
+ key = 'KNAPSACK_PRO_RSPEC_OPTIONS'
13
+ raise "The internal #{key} environment variable is unset. Ensure it is not overridden accidentally. Otherwise, please report this as a bug: #{KnapsackPro::Urls::SUPPORT}" if ENV[key].nil?
14
+
15
+ # Ignore `SPEC_OPTS` to not affect the RSpec execution within this rake task
13
16
  ENV.delete('SPEC_OPTS')
14
17
 
15
- detector = KnapsackPro::TestCaseDetectors::RSpecTestExampleDetector.new
16
- detector.generate_json_report(ENV['KNAPSACK_PRO_RSPEC_OPTIONS'])
18
+ KnapsackPro::TestCaseDetectors::RSpecTestExampleDetector
19
+ .new
20
+ .dry_run_to_file(ENV[key])
17
21
  end
18
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knapsack_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArturT
@@ -111,16 +111,16 @@ dependencies:
111
111
  name: rspec-its
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - "~>"
114
+ - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: '1.3'
116
+ version: '0'
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - "~>"
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
- version: '1.3'
123
+ version: '0'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: spinach
126
126
  requirement: !ruby/object:Gem::Requirement
@@ -202,20 +202,7 @@ executables:
202
202
  extensions: []
203
203
  extra_rdoc_files: []
204
204
  files:
205
- - ".circleci/config.yml"
206
- - ".github/assets/install-button.png"
207
- - ".github/assets/knapsack-diamonds.png"
208
- - ".github/dependabot.yml"
209
- - ".github/pull_request_template.md"
210
- - ".gitignore"
211
- - ".rspec"
212
- - CHANGELOG.md
213
- - Gemfile
214
- - LICENSE
215
- - README.md
216
- - Rakefile
217
205
  - bin/knapsack_pro
218
- - knapsack_pro.gemspec
219
206
  - lib/knapsack_pro.rb
220
207
  - lib/knapsack_pro/adapters/base_adapter.rb
221
208
  - lib/knapsack_pro/adapters/cucumber_adapter.rb
@@ -263,6 +250,7 @@ files:
263
250
  - lib/knapsack_pro/queue.rb
264
251
  - lib/knapsack_pro/queue_allocator.rb
265
252
  - lib/knapsack_pro/queue_allocator_builder.rb
253
+ - lib/knapsack_pro/queue_initializer.rb
266
254
  - lib/knapsack_pro/railtie.rb
267
255
  - lib/knapsack_pro/regular_allocator.rb
268
256
  - lib/knapsack_pro/regular_allocator_builder.rb
@@ -271,6 +259,7 @@ files:
271
259
  - lib/knapsack_pro/repository_adapters/base_adapter.rb
272
260
  - lib/knapsack_pro/repository_adapters/env_adapter.rb
273
261
  - lib/knapsack_pro/repository_adapters/git_adapter.rb
262
+ - lib/knapsack_pro/rspec_slow_test_file_finder.rb
274
263
  - lib/knapsack_pro/runners/base_runner.rb
275
264
  - lib/knapsack_pro/runners/cucumber_runner.rb
276
265
  - lib/knapsack_pro/runners/minitest_runner.rb
@@ -282,16 +271,13 @@ files:
282
271
  - lib/knapsack_pro/runners/spinach_runner.rb
283
272
  - lib/knapsack_pro/runners/test_unit_runner.rb
284
273
  - lib/knapsack_pro/slow_test_file_determiner.rb
285
- - lib/knapsack_pro/slow_test_file_finder.rb
286
274
  - lib/knapsack_pro/task_loader.rb
287
275
  - lib/knapsack_pro/test_case_detectors/rspec_test_example_detector.rb
288
- - lib/knapsack_pro/test_case_mergers/base_merger.rb
289
276
  - lib/knapsack_pro/test_case_mergers/rspec_merger.rb
290
277
  - lib/knapsack_pro/test_file_cleaner.rb
291
278
  - lib/knapsack_pro/test_file_finder.rb
292
279
  - lib/knapsack_pro/test_file_pattern.rb
293
280
  - lib/knapsack_pro/test_file_presenter.rb
294
- - lib/knapsack_pro/test_files_with_test_cases_composer.rb
295
281
  - lib/knapsack_pro/test_flat_distributor.rb
296
282
  - lib/knapsack_pro/test_suite.rb
297
283
  - lib/knapsack_pro/tracker.rb
@@ -309,100 +295,6 @@ files:
309
295
  - lib/tasks/salt.rake
310
296
  - lib/tasks/spinach.rake
311
297
  - lib/tasks/test_unit.rake
312
- - spec/fixtures/test_file_list_source_file.txt
313
- - spec/fixtures/vcr_cassettes/api/v1/build_distributions/subset/invalid_test_suite_token.yml
314
- - spec/fixtures/vcr_cassettes/api/v1/build_distributions/subset/success.yml
315
- - spec/fixtures/vcr_cassettes/api/v1/build_subsets/create/invalid_test_suite_token.yml
316
- - spec/fixtures/vcr_cassettes/api/v1/build_subsets/create/success.yml
317
- - spec/integration/api/build_distributions_subset_spec.rb
318
- - spec/integration/api/build_subsets_create_spec.rb
319
- - spec/integration/runners/fallback_spec.rb
320
- - spec/integration/runners/queue/cucumber_runner_fallback_spec.rb
321
- - spec/integration/runners/queue/minitest_runner_fallback_spec.rb
322
- - spec/integration/runners/queue/rspec_runner.rb
323
- - spec/integration/runners/queue/rspec_runner_fallback_spec.rb
324
- - spec/integration/runners/queue/rspec_runner_spec.rb
325
- - spec/knapsack_pro/adapters/base_adapter_spec.rb
326
- - spec/knapsack_pro/adapters/cucumber_adapter_spec.rb
327
- - spec/knapsack_pro/adapters/minitest_adapter_spec.rb
328
- - spec/knapsack_pro/adapters/rspec_adapter_spec.rb
329
- - spec/knapsack_pro/adapters/spinach_adapter_spec.rb
330
- - spec/knapsack_pro/adapters/test_unit_adapter_spec.rb
331
- - spec/knapsack_pro/base_allocator_builder_spec.rb
332
- - spec/knapsack_pro/build_distribution_fetcher_spec.rb
333
- - spec/knapsack_pro/client/api/action_spec.rb
334
- - spec/knapsack_pro/client/api/v1/base_spec.rb
335
- - spec/knapsack_pro/client/api/v1/build_distributions_spec.rb
336
- - spec/knapsack_pro/client/api/v1/build_subsets_spec.rb
337
- - spec/knapsack_pro/client/api/v1/queues_spec.rb
338
- - spec/knapsack_pro/client/connection_spec.rb
339
- - spec/knapsack_pro/config/ci/app_veyor_spec.rb
340
- - spec/knapsack_pro/config/ci/base_spec.rb
341
- - spec/knapsack_pro/config/ci/buildkite_spec.rb
342
- - spec/knapsack_pro/config/ci/circle_spec.rb
343
- - spec/knapsack_pro/config/ci/cirrus_ci_spec.rb
344
- - spec/knapsack_pro/config/ci/codefresh_spec.rb
345
- - spec/knapsack_pro/config/ci/codeship_spec.rb
346
- - spec/knapsack_pro/config/ci/github_actions_spec.rb
347
- - spec/knapsack_pro/config/ci/gitlab_ci_spec.rb
348
- - spec/knapsack_pro/config/ci/heroku_spec.rb
349
- - spec/knapsack_pro/config/ci/semaphore2_spec.rb
350
- - spec/knapsack_pro/config/ci/semaphore_spec.rb
351
- - spec/knapsack_pro/config/ci/travis_spec.rb
352
- - spec/knapsack_pro/config/env_generator_spec.rb
353
- - spec/knapsack_pro/config/env_spec.rb
354
- - spec/knapsack_pro/config/temp_files_spec.rb
355
- - spec/knapsack_pro/crypto/branch_encryptor_spec.rb
356
- - spec/knapsack_pro/crypto/decryptor_spec.rb
357
- - spec/knapsack_pro/crypto/digestor_spec.rb
358
- - spec/knapsack_pro/crypto/encryptor_spec.rb
359
- - spec/knapsack_pro/formatters/time_tracker_fetcher_spec.rb
360
- - spec/knapsack_pro/formatters/time_tracker_spec.rb
361
- - spec/knapsack_pro/hooks/queue_spec.rb
362
- - spec/knapsack_pro/presenter_spec.rb
363
- - spec/knapsack_pro/pure/queue/rspec_pure_spec.rb
364
- - spec/knapsack_pro/queue_spec.rb
365
- - spec/knapsack_pro/report_spec.rb
366
- - spec/knapsack_pro/repository_adapter_initiator_spec.rb
367
- - spec/knapsack_pro/repository_adapters/base_adapter_spec.rb
368
- - spec/knapsack_pro/repository_adapters/env_adapter_spec.rb
369
- - spec/knapsack_pro/repository_adapters/git_adapter_spec.rb
370
- - spec/knapsack_pro/runners/base_runner_spec.rb
371
- - spec/knapsack_pro/runners/cucumber_runner_spec.rb
372
- - spec/knapsack_pro/runners/minitest_runner_spec.rb
373
- - spec/knapsack_pro/runners/queue/base_runner_spec.rb
374
- - spec/knapsack_pro/runners/queue/cucumber_runner_spec.rb
375
- - spec/knapsack_pro/runners/queue/minitest_runner_spec.rb
376
- - spec/knapsack_pro/runners/rspec_runner_spec.rb
377
- - spec/knapsack_pro/runners/spinach_runner_spec.rb
378
- - spec/knapsack_pro/runners/test_unit_runner_spec.rb
379
- - spec/knapsack_pro/slow_test_file_determiner_spec.rb
380
- - spec/knapsack_pro/slow_test_file_finder_spec.rb
381
- - spec/knapsack_pro/task_loader_spec.rb
382
- - spec/knapsack_pro/test_case_detectors/rspec_test_example_detector_spec.rb
383
- - spec/knapsack_pro/test_case_mergers/base_merger_spec.rb
384
- - spec/knapsack_pro/test_case_mergers/rspec_merger_spec.rb
385
- - spec/knapsack_pro/test_file_cleaner_spec.rb
386
- - spec/knapsack_pro/test_file_finder_spec.rb
387
- - spec/knapsack_pro/test_file_pattern_spec.rb
388
- - spec/knapsack_pro/test_file_presenter_spec.rb
389
- - spec/knapsack_pro/test_files_with_test_cases_composer_spec.rb
390
- - spec/knapsack_pro/test_flat_distributor_spec.rb
391
- - spec/knapsack_pro/tracker_spec.rb
392
- - spec/knapsack_pro/utils_spec.rb
393
- - spec/knapsack_pro_spec.rb
394
- - spec/spec_helper.rb
395
- - spec/support/.gitkeep
396
- - spec/support/fakes/cucumber.rb
397
- - spec/support/fakes/minitest.rb
398
- - spec/support/shared_examples/adapter.rb
399
- - spec_fake/controllers/users_controller_spec.rb
400
- - spec_fake/models/admin_spec.rb
401
- - spec_fake/models/user_spec.rb
402
- - spec_fake/spec_helper.rb
403
- - spec_time_tracker/spec_helper.rb
404
- - test_fake/a_test.rb
405
- - test_fake/b_test.rb
406
298
  homepage: https://knapsackpro.com
407
299
  licenses:
408
300
  - MIT
@@ -426,95 +318,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
426
318
  - !ruby/object:Gem::Version
427
319
  version: '0'
428
320
  requirements: []
429
- rubygems_version: 3.6.9
321
+ rubygems_version: 4.0.3
430
322
  specification_version: 4
431
323
  summary: Knapsack Pro splits tests across parallel CI nodes and ensures each parallel
432
324
  job finish work at a similar time.
433
- test_files:
434
- - spec/fixtures/test_file_list_source_file.txt
435
- - spec/fixtures/vcr_cassettes/api/v1/build_distributions/subset/invalid_test_suite_token.yml
436
- - spec/fixtures/vcr_cassettes/api/v1/build_distributions/subset/success.yml
437
- - spec/fixtures/vcr_cassettes/api/v1/build_subsets/create/invalid_test_suite_token.yml
438
- - spec/fixtures/vcr_cassettes/api/v1/build_subsets/create/success.yml
439
- - spec/integration/api/build_distributions_subset_spec.rb
440
- - spec/integration/api/build_subsets_create_spec.rb
441
- - spec/integration/runners/fallback_spec.rb
442
- - spec/integration/runners/queue/cucumber_runner_fallback_spec.rb
443
- - spec/integration/runners/queue/minitest_runner_fallback_spec.rb
444
- - spec/integration/runners/queue/rspec_runner.rb
445
- - spec/integration/runners/queue/rspec_runner_fallback_spec.rb
446
- - spec/integration/runners/queue/rspec_runner_spec.rb
447
- - spec/knapsack_pro/adapters/base_adapter_spec.rb
448
- - spec/knapsack_pro/adapters/cucumber_adapter_spec.rb
449
- - spec/knapsack_pro/adapters/minitest_adapter_spec.rb
450
- - spec/knapsack_pro/adapters/rspec_adapter_spec.rb
451
- - spec/knapsack_pro/adapters/spinach_adapter_spec.rb
452
- - spec/knapsack_pro/adapters/test_unit_adapter_spec.rb
453
- - spec/knapsack_pro/base_allocator_builder_spec.rb
454
- - spec/knapsack_pro/build_distribution_fetcher_spec.rb
455
- - spec/knapsack_pro/client/api/action_spec.rb
456
- - spec/knapsack_pro/client/api/v1/base_spec.rb
457
- - spec/knapsack_pro/client/api/v1/build_distributions_spec.rb
458
- - spec/knapsack_pro/client/api/v1/build_subsets_spec.rb
459
- - spec/knapsack_pro/client/api/v1/queues_spec.rb
460
- - spec/knapsack_pro/client/connection_spec.rb
461
- - spec/knapsack_pro/config/ci/app_veyor_spec.rb
462
- - spec/knapsack_pro/config/ci/base_spec.rb
463
- - spec/knapsack_pro/config/ci/buildkite_spec.rb
464
- - spec/knapsack_pro/config/ci/circle_spec.rb
465
- - spec/knapsack_pro/config/ci/cirrus_ci_spec.rb
466
- - spec/knapsack_pro/config/ci/codefresh_spec.rb
467
- - spec/knapsack_pro/config/ci/codeship_spec.rb
468
- - spec/knapsack_pro/config/ci/github_actions_spec.rb
469
- - spec/knapsack_pro/config/ci/gitlab_ci_spec.rb
470
- - spec/knapsack_pro/config/ci/heroku_spec.rb
471
- - spec/knapsack_pro/config/ci/semaphore2_spec.rb
472
- - spec/knapsack_pro/config/ci/semaphore_spec.rb
473
- - spec/knapsack_pro/config/ci/travis_spec.rb
474
- - spec/knapsack_pro/config/env_generator_spec.rb
475
- - spec/knapsack_pro/config/env_spec.rb
476
- - spec/knapsack_pro/config/temp_files_spec.rb
477
- - spec/knapsack_pro/crypto/branch_encryptor_spec.rb
478
- - spec/knapsack_pro/crypto/decryptor_spec.rb
479
- - spec/knapsack_pro/crypto/digestor_spec.rb
480
- - spec/knapsack_pro/crypto/encryptor_spec.rb
481
- - spec/knapsack_pro/formatters/time_tracker_fetcher_spec.rb
482
- - spec/knapsack_pro/formatters/time_tracker_spec.rb
483
- - spec/knapsack_pro/hooks/queue_spec.rb
484
- - spec/knapsack_pro/presenter_spec.rb
485
- - spec/knapsack_pro/pure/queue/rspec_pure_spec.rb
486
- - spec/knapsack_pro/queue_spec.rb
487
- - spec/knapsack_pro/report_spec.rb
488
- - spec/knapsack_pro/repository_adapter_initiator_spec.rb
489
- - spec/knapsack_pro/repository_adapters/base_adapter_spec.rb
490
- - spec/knapsack_pro/repository_adapters/env_adapter_spec.rb
491
- - spec/knapsack_pro/repository_adapters/git_adapter_spec.rb
492
- - spec/knapsack_pro/runners/base_runner_spec.rb
493
- - spec/knapsack_pro/runners/cucumber_runner_spec.rb
494
- - spec/knapsack_pro/runners/minitest_runner_spec.rb
495
- - spec/knapsack_pro/runners/queue/base_runner_spec.rb
496
- - spec/knapsack_pro/runners/queue/cucumber_runner_spec.rb
497
- - spec/knapsack_pro/runners/queue/minitest_runner_spec.rb
498
- - spec/knapsack_pro/runners/rspec_runner_spec.rb
499
- - spec/knapsack_pro/runners/spinach_runner_spec.rb
500
- - spec/knapsack_pro/runners/test_unit_runner_spec.rb
501
- - spec/knapsack_pro/slow_test_file_determiner_spec.rb
502
- - spec/knapsack_pro/slow_test_file_finder_spec.rb
503
- - spec/knapsack_pro/task_loader_spec.rb
504
- - spec/knapsack_pro/test_case_detectors/rspec_test_example_detector_spec.rb
505
- - spec/knapsack_pro/test_case_mergers/base_merger_spec.rb
506
- - spec/knapsack_pro/test_case_mergers/rspec_merger_spec.rb
507
- - spec/knapsack_pro/test_file_cleaner_spec.rb
508
- - spec/knapsack_pro/test_file_finder_spec.rb
509
- - spec/knapsack_pro/test_file_pattern_spec.rb
510
- - spec/knapsack_pro/test_file_presenter_spec.rb
511
- - spec/knapsack_pro/test_files_with_test_cases_composer_spec.rb
512
- - spec/knapsack_pro/test_flat_distributor_spec.rb
513
- - spec/knapsack_pro/tracker_spec.rb
514
- - spec/knapsack_pro/utils_spec.rb
515
- - spec/knapsack_pro_spec.rb
516
- - spec/spec_helper.rb
517
- - spec/support/.gitkeep
518
- - spec/support/fakes/cucumber.rb
519
- - spec/support/fakes/minitest.rb
520
- - spec/support/shared_examples/adapter.rb
325
+ test_files: []