rspec-abq 1.1.4 → 1.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.
- checksums.yaml +4 -4
- data/README.md +22 -65
- data/lib/rspec/abq/extensions.rb +4 -0
- data/lib/rspec/abq/version.rb +1 -1
- data/lib/rspec/abq.rb +4 -0
- metadata +22 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4981ef40bdbb50ac4e89c78713e13eb64dfa7527a828b6f748f914bedc6f4f00
|
4
|
+
data.tar.gz: ba3ab95a526e074b75bfdcbe6a5546230b9ee2b23fd4f2f0ec90a8b57ab86dfc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac9cb3808e6fdaf81032bd2cc69ff388e06834f09594e9a0072276951417fe36ef6f5243b1f5edccc755b15603fde75a5261361a7368b40ec1fe01395b95680b
|
7
|
+
data.tar.gz: c5b702af12ad956ee040c45a4e8d7a8a84ab8278315dc1ccb968b681e96577aba986dfd6d39d9a22427985aa47249e0803d4d7f606afb8b427f62b640a2ff5ea
|
data/README.md
CHANGED
@@ -1,85 +1,42 @@
|
|
1
|
-
#
|
1
|
+
# RSpec bindings for ABQ
|
2
2
|
|
3
|
-
|
3
|
+
:globe_with_meridians: [website](https://www.rwx.com/abq)  
|
4
|
+
:bird: [@rwx_research](https://twitter.com/rwx_research)  
|
5
|
+
:speech_balloon: [discord](https://www.rwx.com/discord)  
|
6
|
+
:books: [documentation](https://www.rwx.com/docs/abq)
|
4
7
|
|
5
|
-
|
8
|
+
:octocat: [rwx-research/abq](https://github.com/rwx-research/abq)
|
6
9
|
|
7
|
-
|
10
|
+
ABQ is a universal test runner that runs test suites in parallel.
|
11
|
+
It’s the best tool for splitting test suites into parallel jobs locally or on CI.
|
8
12
|
|
9
|
-
|
10
|
-
group :test do
|
11
|
-
gem 'rspec-core'
|
12
|
-
...
|
13
|
-
gem 'rspec-abq'
|
14
|
-
end
|
15
|
-
```
|
13
|
+
The `rspec-abq` gem provides the RSpec bindings for ABQ.
|
16
14
|
|
17
|
-
|
15
|
+
To use ABQ, check out the documentation on [getting started](https://www.rwx.com/docs/abq/getting-started).
|
18
16
|
|
19
|
-
|
20
|
-
bundle
|
21
|
-
```
|
17
|
+
## Demo
|
22
18
|
|
23
|
-
|
19
|
+
Here's a demo of running an RSpec test suite, and then using `abq` to run it in parallel.
|
20
|
+
ABQ invokes any test command passed to it, so you can continue using your native test framework CLI with any arguments it supports.
|
24
21
|
|
25
|
-
|
22
|
+

|
26
23
|
|
27
|
-
|
28
|
-
abq test -- bundle exec rspec
|
29
|
-
```
|
24
|
+
## Installation
|
30
25
|
|
31
|
-
|
26
|
+
Include the `rspec-abq` gem in your `Gemfile`.
|
27
|
+
Commonly, it's added under a test group.
|
32
28
|
|
33
29
|
```ruby
|
34
|
-
|
30
|
+
group :test do
|
31
|
+
gem "rspec-abq"
|
32
|
+
end
|
35
33
|
```
|
36
34
|
|
37
|
-
|
38
|
-
|
39
|
-
This gem is actively tested against
|
40
|
-
|
41
|
-
- rubies 2.7-3.1
|
42
|
-
- rspecs 3.5-3.12
|
43
|
-
|
44
|
-
as well as a handful of rspec plugins:
|
45
|
-
|
46
|
-
- rspec-retry 0.6.2
|
47
|
-
- capybara 3.36.0
|
48
|
-
- selenium-webdriver 4.1.0
|
49
|
-
- capybara-inline-screenshot 2.2.1 (see note below)
|
50
|
-
|
51
|
-
### Usage with capybara-inline-screenshot (or capybara-screenshot)
|
52
|
-
|
53
|
-
#### tldr
|
54
|
-
|
55
|
-
1. run rspec with a compatible `--format` option:
|
56
|
-
|
57
|
-
```sh
|
58
|
-
abq test -- bundle exec rspec --format documentation
|
59
|
-
```
|
60
|
-
|
61
|
-
2. check for screenshots in the worker output
|
62
|
-
|
63
|
-
#### What's happening?
|
64
|
-
|
65
|
-
By default, rspec-abq only sends rspec-output to the test process. Because of this, custom formatting (e.g. that
|
66
|
-
done by capybara-inline-screenshot) is lost.
|
67
|
-
|
68
|
-
If you want to enable custom formatting (which will show inline screenshots), enable a
|
69
|
-
capybara-inline-screenshot compatible formatter (`progress` or `documentation`). This will output rspec results
|
70
|
-
(including screenshots) from the worker processeses.
|
71
|
-
|
72
|
-
Note: the test process output will still only have the aggregate results without screenshots.
|
35
|
+
See [the docs](https://www.rwx.com/docs/abq/test-frameworks/rspec) for more notes on installation and compatibility with other RSpec libraries.
|
73
36
|
|
74
37
|
## Development
|
75
38
|
|
76
|
-
|
77
|
-
|
78
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
79
|
-
|
80
|
-
### Releasing the gem
|
81
|
-
|
82
|
-
use the release script, `./release_gem.rb`
|
39
|
+
For working on `rspec-abq` itself, see [DEVELOPMENT.md](DEVELOPMENT.md)
|
83
40
|
|
84
41
|
## Contributing
|
85
42
|
|
data/lib/rspec/abq/extensions.rb
CHANGED
@@ -119,6 +119,10 @@ module RSpec
|
|
119
119
|
# or the configured failure exit status (1 by default) if specs
|
120
120
|
# failed.
|
121
121
|
def run_specs(example_groups)
|
122
|
+
if Gem::Version.new(RSpec::Core::Version::STRING) >= Gem::Version.new("3.11.0") && RSpec.world.rspec_is_quitting
|
123
|
+
return exit_code(false)
|
124
|
+
end
|
125
|
+
|
122
126
|
if !!ENV[ABQ_GENERATE_MANIFEST]
|
123
127
|
# before abq can start workers, it asks for a manifest
|
124
128
|
RSpec::Abq::Manifest.write_manifest(example_groups, RSpec.configuration.seed, RSpec.configuration.ordering_registry)
|
data/lib/rspec/abq/version.rb
CHANGED
data/lib/rspec/abq.rb
CHANGED
@@ -145,6 +145,7 @@ module RSpec
|
|
145
145
|
# @return [void]
|
146
146
|
def self.setup_extensions_if_enabled!
|
147
147
|
return unless enabled?
|
148
|
+
perform_handshake!
|
148
149
|
Extensions.setup!
|
149
150
|
end
|
150
151
|
|
@@ -199,6 +200,7 @@ module RSpec
|
|
199
200
|
RSpec.configuration.color_mode = :on
|
200
201
|
else
|
201
202
|
RSpec.configuration.color = true
|
203
|
+
RSpec.configuration.tty = true
|
202
204
|
end
|
203
205
|
|
204
206
|
# RSpec only adds a default formatter if there are no formatters.
|
@@ -252,6 +254,8 @@ module RSpec
|
|
252
254
|
# the target_test_case is the test case the abq worker wants results for
|
253
255
|
# @!visibility private
|
254
256
|
attr_reader :target_test_case
|
257
|
+
|
258
|
+
alias_method :perform_handshake!, :socket
|
255
259
|
end
|
256
260
|
|
257
261
|
# pulls next example from the abq worker and sets it to #target_test_case
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-abq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- rwx
|
7
8
|
- Ayaz Hafiz
|
8
9
|
- Michael Glass
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2024-03-01 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: rspec-core
|
@@ -17,20 +18,20 @@ dependencies:
|
|
17
18
|
requirements:
|
18
19
|
- - ">="
|
19
20
|
- !ruby/object:Gem::Version
|
20
|
-
version: 3.
|
21
|
+
version: 3.8.0
|
21
22
|
- - "<"
|
22
23
|
- !ruby/object:Gem::Version
|
23
|
-
version: 3.
|
24
|
+
version: 3.14.0
|
24
25
|
type: :runtime
|
25
26
|
prerelease: false
|
26
27
|
version_requirements: !ruby/object:Gem::Requirement
|
27
28
|
requirements:
|
28
29
|
- - ">="
|
29
30
|
- !ruby/object:Gem::Version
|
30
|
-
version: 3.
|
31
|
+
version: 3.8.0
|
31
32
|
- - "<"
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
34
|
+
version: 3.14.0
|
34
35
|
- !ruby/object:Gem::Dependency
|
35
36
|
name: pry
|
36
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,84 +66,84 @@ dependencies:
|
|
65
66
|
requirements:
|
66
67
|
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
69
|
+
version: '3.40'
|
69
70
|
type: :development
|
70
71
|
prerelease: false
|
71
72
|
version_requirements: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
74
|
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
76
|
+
version: '3.40'
|
76
77
|
- !ruby/object:Gem::Dependency
|
77
78
|
name: selenium-webdriver
|
78
79
|
requirement: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
81
|
- - "~>"
|
81
82
|
- !ruby/object:Gem::Version
|
82
|
-
version: 4.
|
83
|
+
version: 4.10.0
|
83
84
|
type: :development
|
84
85
|
prerelease: false
|
85
86
|
version_requirements: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
88
|
- - "~>"
|
88
89
|
- !ruby/object:Gem::Version
|
89
|
-
version: 4.
|
90
|
+
version: 4.10.0
|
90
91
|
- !ruby/object:Gem::Dependency
|
91
92
|
name: nokogiri
|
92
93
|
requirement: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
95
|
- - "~>"
|
95
96
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.
|
97
|
+
version: '1.16'
|
97
98
|
type: :development
|
98
99
|
prerelease: false
|
99
100
|
version_requirements: !ruby/object:Gem::Requirement
|
100
101
|
requirements:
|
101
102
|
- - "~>"
|
102
103
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
104
|
+
version: '1.16'
|
104
105
|
- !ruby/object:Gem::Dependency
|
105
106
|
name: webdrivers
|
106
107
|
requirement: !ruby/object:Gem::Requirement
|
107
108
|
requirements:
|
108
109
|
- - "~>"
|
109
110
|
- !ruby/object:Gem::Version
|
110
|
-
version: 5.
|
111
|
+
version: '5.3'
|
111
112
|
type: :development
|
112
113
|
prerelease: false
|
113
114
|
version_requirements: !ruby/object:Gem::Requirement
|
114
115
|
requirements:
|
115
116
|
- - "~>"
|
116
117
|
- !ruby/object:Gem::Version
|
117
|
-
version: 5.
|
118
|
+
version: '5.3'
|
118
119
|
- !ruby/object:Gem::Dependency
|
119
120
|
name: rack
|
120
121
|
requirement: !ruby/object:Gem::Requirement
|
121
122
|
requirements:
|
122
123
|
- - "~>"
|
123
124
|
- !ruby/object:Gem::Version
|
124
|
-
version: 2.2
|
125
|
+
version: '2.2'
|
125
126
|
type: :development
|
126
127
|
prerelease: false
|
127
128
|
version_requirements: !ruby/object:Gem::Requirement
|
128
129
|
requirements:
|
129
130
|
- - "~>"
|
130
131
|
- !ruby/object:Gem::Version
|
131
|
-
version: 2.2
|
132
|
+
version: '2.2'
|
132
133
|
- !ruby/object:Gem::Dependency
|
133
134
|
name: puma
|
134
135
|
requirement: !ruby/object:Gem::Requirement
|
135
136
|
requirements:
|
136
137
|
- - "~>"
|
137
138
|
- !ruby/object:Gem::Version
|
138
|
-
version: 6.
|
139
|
+
version: '6.4'
|
139
140
|
type: :development
|
140
141
|
prerelease: false
|
141
142
|
version_requirements: !ruby/object:Gem::Requirement
|
142
143
|
requirements:
|
143
144
|
- - "~>"
|
144
145
|
- !ruby/object:Gem::Version
|
145
|
-
version: 6.
|
146
|
+
version: '6.4'
|
146
147
|
- !ruby/object:Gem::Dependency
|
147
148
|
name: capybara-inline-screenshot
|
148
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,8 +176,7 @@ description: RSpec::Abq is an rspec plugin that replaces its ordering with one t
|
|
175
176
|
is controlled by abq. It allows for parallelization of rspec on a single machine
|
176
177
|
or across multiple workers.
|
177
178
|
email:
|
178
|
-
-
|
179
|
-
- me@rwx.com
|
179
|
+
- support@rwx.com
|
180
180
|
executables: []
|
181
181
|
extensions: []
|
182
182
|
extra_rdoc_files: []
|
@@ -208,14 +208,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
208
208
|
requirements:
|
209
209
|
- - ">="
|
210
210
|
- !ruby/object:Gem::Version
|
211
|
-
version:
|
211
|
+
version: 3.0.0
|
212
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
214
|
- - ">="
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: '0'
|
217
217
|
requirements: []
|
218
|
-
rubygems_version: 3.
|
218
|
+
rubygems_version: 3.4.19
|
219
219
|
signing_key:
|
220
220
|
specification_version: 4
|
221
221
|
summary: RSpec::Abq allows for parallel rspec runs using abq
|