parallel_cucumber 0.2.3 → 0.2.4

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
  SHA1:
3
- metadata.gz: c446c47f0dd453f9b1a8f66e11d374fbf6e16b2e
4
- data.tar.gz: 7a15cd91d8a712344a63d843899278d52a8d86b1
3
+ metadata.gz: 6235aa8339ee967edde15537aee01463bad73785
4
+ data.tar.gz: e8db21507a3ffd074f7630ba9e8f93da115babf6
5
5
  SHA512:
6
- metadata.gz: 9c24151c5b51f480adcfc7641b9e5f784ac397c875c7568d60a36451af2ac7569d67f95ddc68ce31fd0f5331323d8bf6aa5fc58b70bcb86e28b0071cc4ecaaa9
7
- data.tar.gz: 4f2a5adf38c27af996b465fb60da139aee157c3becc975332e1e95a3a0fec857fb5ff027ee1145bd5ee453abcf634d1335184e3b160a19660332c9e00e0cb4e0
6
+ metadata.gz: 17a80ce35ae86020bce48e3ff8233c7a6906f80fa07c46bd424618948ad3f75816215fce42ee26fd139a5774cbe69bdf8e36c8154dfd1ba1ed1e2ece8166e50e
7
+ data.tar.gz: 54bca08a00b74d6d04d2919c1bfd03615087f4f34b75647fbd643be82cd5d9a0ccfece732641a63ef0ee3cca020f8bfc450385ffbf742e79c48988276e0b2ad4
@@ -3,10 +3,19 @@ require_relative 'hooks'
3
3
  module ParallelCucumber
4
4
  module DSL
5
5
  class << self
6
+ # Registers a callback hook which will be called before every batch
7
+ # There can be more than one after_batch, they will be invoked sequentially
8
+ # If one hook fails, the rest hooks will be skipped
9
+ # @yieldparam [optional, Array] tests list of tests to run
10
+ # @yieldparam [optional, String] batch_id batch id
11
+ # @yieldparam [optional, Hash] batch_env env of batch
12
+ def before_batch(&proc)
13
+ Hooks.register_before_batch(proc)
14
+ end
6
15
 
7
16
  # Registers a callback hook which will be called at the end of every batch
8
17
  # There can be more than one after_batch, they will be invoked sequentially
9
- # If one hook fails, rest all will be skipped
18
+ # If one hook fails, the rest hooks will be skipped
10
19
  # @yieldparam [optional, Hash] batch_results results of all tests in a batch
11
20
  # @yieldparam [optional, String] batch_id batch id
12
21
  # @yieldparam [optional, Hash] batch_env env of batch
@@ -15,4 +24,4 @@ module ParallelCucumber
15
24
  end
16
25
  end
17
26
  end
18
- end
27
+ end
@@ -1,13 +1,25 @@
1
1
  module ParallelCucumber
2
2
  class Hooks
3
+ @before_batch_hooks ||= []
3
4
  @after_batch_hooks ||= []
4
5
 
5
6
  class << self
6
- def register_after_batch( proc)
7
+ def register_before_batch(proc)
8
+ raise(ArgumentError, 'Please provide a valid callback') unless proc.respond_to?(:call)
9
+ @before_batch_hooks << proc
10
+ end
11
+
12
+ def register_after_batch(proc)
7
13
  raise(ArgumentError, 'Please provide a valid callback') unless proc.respond_to?(:call)
8
14
  @after_batch_hooks << proc
9
15
  end
10
16
 
17
+ def fire_before_batch_hooks(*args)
18
+ @before_batch_hooks.each do |hook|
19
+ hook.call(*args)
20
+ end
21
+ end
22
+
11
23
  def fire_after_batch_hooks(*args)
12
24
  @after_batch_hooks.each do |hook|
13
25
  hook.call(*args)
@@ -15,4 +27,4 @@ module ParallelCucumber
15
27
  end
16
28
  end
17
29
  end
18
- end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module ParallelCucumber
2
- VERSION = '0.2.3'.freeze
2
+ VERSION = '0.2.4'.freeze
3
3
  end
@@ -142,10 +142,17 @@ module ParallelCucumber
142
142
  @logger.info("Took #{tests.count} from the queue (#{queue_tracker.status}): #{tests.join(' ')}")
143
143
 
144
144
  batch_mm, batch_ss = time_it do
145
+ begin
146
+ Hooks.fire_before_batch_hooks(tests, batch_id, env)
147
+ rescue StandardError => e
148
+ trace = e.backtrace.join("\n\t")
149
+ @logger.warn("There was exception in before_batch hook #{e.message} \n #{trace}")
150
+ end
151
+
145
152
  batch_results = test_batch(batch_id, env, running_total, tests)
146
153
  begin
147
154
  Hooks.fire_after_batch_hooks(batch_results, batch_id, env)
148
- rescue => e
155
+ rescue StandardError => e
149
156
  trace = e.backtrace.join("\n\t")
150
157
  @logger.warn("There was exception in after_batch hook #{e.message} \n #{trace}")
151
158
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallel_cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Bayandin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-19 00:00:00.000000000 Z
11
+ date: 2018-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber