parallel_cucumber 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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