selective-ruby-rspec 0.1.6 → 0.1.8

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
  SHA256:
3
- metadata.gz: ab16214c977e214c1768f9151be4d4eb3f89f4400279c1e269947b353792981d
4
- data.tar.gz: b19ed802819f65223e9ef8a2f262a1fd7c0d3baa70329d6e1de8fe9d5f3b7981
3
+ metadata.gz: 7b90214dbde7f85237970ade3e522dfee6cc44b367edc021fdba95820686d2d9
4
+ data.tar.gz: 9719db25e251200e491d45f9094461680e0d2953eb66834f81d0748fa572282d
5
5
  SHA512:
6
- metadata.gz: d4ba21e4eee2ded289e1d2448401b8078c10eddecb4fa6acaf489954becd0a0166d17be966dce11d96489d63fb8da890c99e1fdb961d2b18853801d536167b02
7
- data.tar.gz: 4f585e62586e20423913e0ad0940dc8c13901de771876de44766b9eb705c58e193ad87083d4df5c56be90bc6814722d6337860c99e20d46e58fa74ebc978d45e
6
+ metadata.gz: 4f7690d0daabbc30d2ec52a7b82dd061bc0586a1226d30ac2989327c6bd73dcb8632c0c939e8a6b76b6e2654b9b1c2cfe21ba576a7c575eb015ebedd1b68aa0b
7
+ data.tar.gz: 6f25414691962aa6f07d40f97495469137c719796c999be8c785890d072a33959bed73f8e9c9577b1ff7c2ded44141afc1d609b475df40681ad1758d3d5fd0c1
@@ -19,6 +19,7 @@ module Selective
19
19
  self.class.runner_wrapper.report_example(notification.example)
20
20
  rescue Selective::Ruby::Core::ConnectionLostError
21
21
  ::RSpec.world.wants_to_quit = true
22
+ self.class.runner_wrapper.connection_lost = true
22
23
  self.class.runner_wrapper.remove_test_case_result(notification.example.id)
23
24
  end
24
25
  end
@@ -1,3 +1,5 @@
1
+ require 'benchmark'
2
+
1
3
  module Selective
2
4
  module Ruby
3
5
  module RSpec
@@ -154,8 +156,20 @@ module Selective
154
156
  module Hooks
155
157
  HOOKS.each do |hook|
156
158
  define_method(hook) do |*args, &block|
157
- args = args.map { |a| a == :all ? :each : a }
158
- super(*args, &block)
159
+ if args.any? { |a| a == :all}
160
+ args = args.map { |a| a == :all ? :each : a }
161
+ super(*args, &->(example) {
162
+ Benchmark.measure { example.instance_exec(example, &block) }.tap do |time|
163
+ Selective::Ruby::Core::Controller.report_at_finish.tap do |report_at_finish|
164
+ key = :"seconds_in_#{hook}_all_hooks"
165
+ report_at_finish[key] ||= 0
166
+ report_at_finish[key] += time.real
167
+ end
168
+ end
169
+ })
170
+ else
171
+ super(*args, &block)
172
+ end
159
173
  end
160
174
  end
161
175
  end
@@ -8,6 +8,7 @@ module Selective
8
8
  class TestManifestError < StandardError; end
9
9
 
10
10
  attr_reader :rspec_runner, :config, :example_callback
11
+ attr_accessor :connection_lost
11
12
 
12
13
  FRAMEWORK = "rspec"
13
14
  DEFAULT_SPEC_PATH = "./spec"
@@ -49,6 +50,10 @@ module Selective
49
50
  ensure_test_phase
50
51
  configure(test_case_ids)
51
52
  rspec_runner.run_specs(optimize_test_filtering(test_case_ids).to_a)
53
+ if connection_lost
54
+ self.connection_lost = false
55
+ raise Selective::Ruby::Core::ConnectionLostError
56
+ end
52
57
  end
53
58
 
54
59
  def exec
@@ -70,7 +75,13 @@ module Selective
70
75
  end
71
76
 
72
77
  def exit_status
73
- ::RSpec.world.reporter.failed_examples.any? ? 1 : 0
78
+ if Gem::Version.new(::RSpec::Core::Version::STRING) >= Gem::Version.new("3.10")
79
+ rspec_runner.exit_code(::RSpec.world.reporter.failed_examples.none?)
80
+ else
81
+ return ::RSpec.world.reporter.exit_early(rspec_runner.configuration.failure_exit_code) if ::RSpec.world.wants_to_quit
82
+
83
+ ::RSpec.world.reporter.failed_examples.any? ? 1 : 0
84
+ end
74
85
  end
75
86
 
76
87
  def finish
@@ -3,7 +3,7 @@
3
3
  module Selective
4
4
  module Ruby
5
5
  module RSpec
6
- VERSION = "0.1.6"
6
+ VERSION = "0.1.8"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selective-ruby-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Wood
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-02-06 00:00:00.000000000 Z
12
+ date: 2024-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: zeitwerk
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
- rubygems_version: 3.4.10
83
+ rubygems_version: 3.5.3
84
84
  signing_key:
85
85
  specification_version: 4
86
86
  summary: Selective Ruby RSpec Client