knapsack_pro 1.0.1 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd3738b3ce978cfd66c03f8a3a125bbf243c51ded0ca237d911b39e5e1bd49a1
4
- data.tar.gz: b840297f936a9a9d81af47a67795a7287fd69e996449f88291b5c8a7cd6dc5d8
3
+ metadata.gz: 8608ce6cc56baf7be7b0be2a09c8ecbb0e4f5aa2e0e80ce796284aba9d2fc9bf
4
+ data.tar.gz: b249d1169e73ecf370d055169189e158b0d0b2cee526540a07eb13b92bb12f6e
5
5
  SHA512:
6
- metadata.gz: c6b64eef137993948a9ab9e6fd001c2bf55d1a05adeb25d1de46c6548db0cc47505019ee9b0b8da4bf0620944be61639eb4372aef620f9ee976dc64219668b28
7
- data.tar.gz: d51a9c073f15feb17455a0151d6e655307be2dbdb16796795b2ef751a66f046040256d6549dd2e27b1a27dcd7789c6160d55a624080d2d71ab97fc085c73ac85
6
+ metadata.gz: 5868feda23ff81b692ba3053876c3036379e373f77e9004460b29691f18beb35ccbccd32175434f2b98ca8bb973a321f28cd4ac096f346e034a664534b82ccb1
7
+ data.tar.gz: 76efa329752999c325af61c9479f5b496719b84aac9e0b0de2b8ab4838ebd2303a3ba05951e54adcf1f5eb32d552fb482ac2b9e6a836d0a8780ff1687f9d3384
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  * TODO
4
4
 
5
+ ### 1.0.2
6
+
7
+ * Track time execution of all tests assigned to CI node in Queue Mode even when they did not run due syntax error or being pending/empty in test run.
8
+
9
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/71
10
+
11
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v1.0.1...v1.0.2
12
+
5
13
  ### 1.0.1
6
14
 
7
15
  * Fix bug with not being able to set log level via logger wrapper.
@@ -31,23 +31,13 @@ module KnapsackPro
31
31
  raise NotImplementedError
32
32
  end
33
33
 
34
- def bind_save_queue_report
35
- raise NotImplementedError
36
- end
37
-
38
- def bind_tracker_reset
39
- raise NotImplementedError
40
- end
41
-
42
34
  def bind_before_queue_hook
43
35
  raise NotImplementedError
44
36
  end
45
37
 
46
38
  def bind_queue_mode
47
- bind_tracker_reset
48
39
  bind_before_queue_hook
49
40
  bind_time_tracker
50
- bind_save_queue_report
51
41
  end
52
42
  end
53
43
  end
@@ -51,22 +51,6 @@ module KnapsackPro
51
51
  end
52
52
  end
53
53
 
54
- def bind_save_queue_report
55
- ::RSpec.configure do |config|
56
- config.after(:suite) do
57
- KnapsackPro::Report.save_subset_queue_to_file
58
- end
59
- end
60
- end
61
-
62
- def bind_tracker_reset
63
- ::RSpec.configure do |config|
64
- config.before(:suite) do
65
- KnapsackPro.tracker.reset!
66
- end
67
- end
68
- end
69
-
70
54
  def bind_before_queue_hook
71
55
  ::RSpec.configure do |config|
72
56
  config.before(:suite) do
@@ -59,6 +59,7 @@ module KnapsackPro
59
59
  ENV['KNAPSACK_PRO_SUBSET_QUEUE_ID'] = subset_queue_id
60
60
 
61
61
  KnapsackPro.tracker.reset!
62
+ KnapsackPro.tracker.set_prerun_tests(test_file_paths)
62
63
 
63
64
  all_test_file_paths += test_file_paths
64
65
 
@@ -69,6 +69,9 @@ module KnapsackPro
69
69
  subset_queue_id = KnapsackPro::Config::EnvGenerator.set_subset_queue_id
70
70
  ENV['KNAPSACK_PRO_SUBSET_QUEUE_ID'] = subset_queue_id
71
71
 
72
+ KnapsackPro.tracker.reset!
73
+ KnapsackPro.tracker.set_prerun_tests(test_file_paths)
74
+
72
75
  all_test_file_paths += test_file_paths
73
76
  cli_args = args + test_file_paths
74
77
 
@@ -82,6 +85,8 @@ module KnapsackPro
82
85
 
83
86
  KnapsackPro::Hooks::Queue.call_after_subset_queue
84
87
 
88
+ KnapsackPro::Report.save_subset_queue_to_file
89
+
85
90
  return {
86
91
  status: :next,
87
92
  runner: runner,
@@ -30,6 +30,16 @@ module KnapsackPro
30
30
  @current_test_path.sub(/^\.\//, '')
31
31
  end
32
32
 
33
+ def set_prerun_tests(test_file_paths)
34
+ test_file_paths.each do |test_file_path|
35
+ # Set a default time for test file
36
+ # in case when the test file will not be run
37
+ # due syntax error or being pending.
38
+ # The time is required by Knapsack Pro API.
39
+ @test_files_with_time[test_file_path] = 0.1
40
+ end
41
+ end
42
+
33
43
  def to_a
34
44
  test_files = []
35
45
  @test_files_with_time.each do |path, time_execution|
@@ -1,3 +1,3 @@
1
1
  module KnapsackPro
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
@@ -48,10 +48,8 @@ describe KnapsackPro::Adapters::BaseAdapter do
48
48
  let(:queue_recording_enabled?) { true }
49
49
 
50
50
  before do
51
- allow(subject).to receive(:bind_tracker_reset)
52
51
  allow(subject).to receive(:bind_before_queue_hook)
53
52
  allow(subject).to receive(:bind_time_tracker)
54
- allow(subject).to receive(:bind_save_queue_report)
55
53
  end
56
54
 
57
55
  it do
@@ -59,17 +57,13 @@ describe KnapsackPro::Adapters::BaseAdapter do
59
57
  expect(KnapsackPro).to receive(:logger).and_return(logger)
60
58
  expect(logger).to receive(:debug).with('Test suite time execution queue recording enabled.')
61
59
  end
62
- it { expect(subject).to receive(:bind_tracker_reset) }
63
60
  it { expect(subject).to receive(:bind_before_queue_hook) }
64
61
  it { expect(subject).to receive(:bind_time_tracker) }
65
- it { expect(subject).to receive(:bind_save_queue_report) }
66
62
  end
67
63
 
68
64
  context 'when recording disabled' do
69
- it { expect(subject).not_to receive(:bind_tracker_reset) }
70
65
  it { expect(subject).not_to receive(:bind_time_tracker) }
71
66
  it { expect(subject).not_to receive(:bind_save_report) }
72
- it { expect(subject).not_to receive(:bind_save_queue_report) }
73
67
  it { expect(subject).not_to receive(:bind_before_queue_hook) }
74
68
  end
75
69
  end
@@ -90,22 +84,6 @@ describe KnapsackPro::Adapters::BaseAdapter do
90
84
  end
91
85
  end
92
86
 
93
- describe '#bind_save_queue_report' do
94
- it do
95
- expect {
96
- subject.bind_save_queue_report
97
- }.to raise_error(NotImplementedError)
98
- end
99
- end
100
-
101
- describe '#bind_tracker_reset' do
102
- it do
103
- expect {
104
- subject.bind_tracker_reset
105
- }.to raise_error(NotImplementedError)
106
- end
107
- end
108
-
109
87
  describe '#bind_before_queue_hook' do
110
88
  it do
111
89
  expect {
@@ -115,30 +115,6 @@ describe KnapsackPro::Adapters::RSpecAdapter do
115
115
  end
116
116
  end
117
117
 
118
- describe '#bind_save_queue_report' do
119
- it do
120
- expect(config).to receive(:after).with(:suite).and_yield
121
- expect(::RSpec).to receive(:configure).and_yield(config)
122
-
123
- expect(KnapsackPro::Report).to receive(:save_subset_queue_to_file)
124
-
125
- subject.bind_save_queue_report
126
- end
127
- end
128
-
129
- describe '#bind_tracker_reset' do
130
- it do
131
- expect(config).to receive(:before).with(:suite).and_yield
132
- expect(::RSpec).to receive(:configure).and_yield(config)
133
-
134
- tracker = instance_double(KnapsackPro::Tracker)
135
- expect(KnapsackPro).to receive(:tracker).and_return(tracker)
136
- expect(tracker).to receive(:reset!)
137
-
138
- subject.bind_tracker_reset
139
- end
140
- end
141
-
142
118
  describe '#bind_before_queue_hook' do
143
119
  it do
144
120
  expect(config).to receive(:before).with(:suite).and_yield
@@ -106,7 +106,10 @@ describe KnapsackPro::Runners::Queue::MinitestRunner do
106
106
 
107
107
  expect(ENV).to receive(:[]=).with('KNAPSACK_PRO_SUBSET_QUEUE_ID', subset_queue_id)
108
108
 
109
- expect(KnapsackPro).to receive_message_chain(:tracker, :reset!)
109
+ tracker = instance_double(KnapsackPro::Tracker)
110
+ expect(KnapsackPro).to receive(:tracker).twice.and_return(tracker)
111
+ expect(tracker).to receive(:reset!)
112
+ expect(tracker).to receive(:set_prerun_tests).with(test_file_paths)
110
113
 
111
114
  # .minitest_run
112
115
  expect(described_class).to receive(:require).with('./a_test.rb')
@@ -138,6 +138,11 @@ describe KnapsackPro::Runners::Queue::RSpecRunner do
138
138
 
139
139
  expect(ENV).to receive(:[]=).with('KNAPSACK_PRO_SUBSET_QUEUE_ID', subset_queue_id)
140
140
 
141
+ tracker = instance_double(KnapsackPro::Tracker)
142
+ expect(KnapsackPro).to receive(:tracker).twice.and_return(tracker)
143
+ expect(tracker).to receive(:reset!)
144
+ expect(tracker).to receive(:set_prerun_tests).with(test_file_paths)
145
+
141
146
  options = double
142
147
  expect(RSpec::Core::ConfigurationOptions).to receive(:new).with([
143
148
  '--example-arg', 'example-value',
@@ -152,6 +157,8 @@ describe KnapsackPro::Runners::Queue::RSpecRunner do
152
157
  expect(described_class).to receive(:rspec_clear_examples)
153
158
 
154
159
  expect(KnapsackPro::Hooks::Queue).to receive(:call_after_subset_queue)
160
+
161
+ expect(KnapsackPro::Report).to receive(:save_subset_queue_to_file)
155
162
  end
156
163
 
157
164
  context 'when exit code is zero' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knapsack_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArturT
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-20 00:00:00.000000000 Z
11
+ date: 2018-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake