rspec-abq 1.1.3 → 1.1.5

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: f88c2063493ad3b7115710c2fbd276bb4b08bf6f421804b1e667e617673963cd
4
- data.tar.gz: 2feed437fb384a31d8d3bffdd3baa83a5aac9136198723a39b2fe6dc1a28dcea
3
+ metadata.gz: 1146e666d1067d73f45f4c62a7ec09b7db27d59d949199d23a380635cd24f17a
4
+ data.tar.gz: 1e61242425452f0cfd6c8f7993e7902be5e4a123a93b4ba4ee6da47b49e368f2
5
5
  SHA512:
6
- metadata.gz: b36a45217933dbd5a23064aef2562e298a84889bf219669de24a5e4702aebc8d0f056da4d791b823878b93af3b5982457b805d12778ce7842ee821c808cda07c
7
- data.tar.gz: 9a0a403f7abed4e50fe4928bbd83449c36d6a206b7eedffb86bc19b8565a1c424fdf05d6ca8c685312f41e0ac29323c6b678f85f85212291b135ce053e6ef0a1
6
+ metadata.gz: 120a5e036c4157566cbdf707fcde4d7f0404eb768914554abaaba8ed38a9b88ae28dff919b6df0650300c519c8c7504a847e172849e36a5996f9f9792f440bd6
7
+ data.tar.gz: 23ce430e07de68a261a744139ec7ecc3b596095674a98d0ff4e0ecfbbf9187a6628e308d273ee81530c5e78f31e5388325e47f2cd8043c1b5c13f4daedd87fce
data/README.md CHANGED
@@ -1,85 +1,42 @@
1
- # Rspec::Abq
1
+ # RSpec bindings for ABQ
2
2
 
3
- This gem helps you use rspec with abq.
3
+ :globe_with_meridians: [abq.build](https://abq.build)  
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
- ## Installation
8
+ :octocat: [rwx-research/abq](https://github.com/rwx-research/abq)
6
9
 
7
- Add this line to your application's Gemfile:
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
- ```ruby
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
- And then execute:
15
+ To use ABQ, check out the documentation on [getting started](https://www.rwx.com/docs/abq/getting-started).
18
16
 
19
- ```bash
20
- bundle
21
- ```
17
+ ## Demo
22
18
 
23
- ## Usage
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
- Use the included binary with abq:
22
+ ![abq-demo.svg](abq-demo.svg)
26
23
 
27
- ```bash
28
- abq test -- bundle exec rspec
29
- ```
24
+ ## Installation
30
25
 
31
- If abq displays "Worker quit before sending protocol version", try adding this line to your application's `spec/spec_helper.rb`:
26
+ Include the `rspec-abq` gem in your `Gemfile`.
27
+ Commonly, it's added under a test group.
32
28
 
33
29
  ```ruby
34
- require 'rspec/abq'
30
+ group :test do
31
+ gem "rspec-abq"
32
+ end
35
33
  ```
36
34
 
37
- ## Compatibility
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
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
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
 
@@ -1,6 +1,6 @@
1
1
  module RSpec
2
2
  module Abq
3
3
  # current version!
4
- VERSION = "1.1.3"
4
+ VERSION = "1.1.5"
5
5
  end
6
6
  end
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,8 +200,13 @@ 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
 
206
+ # RSpec only adds a default formatter if there are no formatters.
207
+ # Abq::Formatter is used for internal communication over the ABQ protocol, not for $stdout.
208
+ RSpec.configuration.add_formatter(RSpec.configuration.default_formatter) if RSpec.configuration.formatters.empty?
209
+
204
210
  RSpec.configuration.add_formatter(RSpec::Abq::Formatter)
205
211
 
206
212
  # the first message is the init_meta block of the manifest. This is used to share runtime configuration
@@ -248,6 +254,8 @@ module RSpec
248
254
  # the target_test_case is the test case the abq worker wants results for
249
255
  # @!visibility private
250
256
  attr_reader :target_test_case
257
+
258
+ alias_method :perform_handshake!, :socket
251
259
  end
252
260
 
253
261
  # pulls next example from the abq worker and sets it to #target_test_case
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-abq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ayaz Hafiz
@@ -121,14 +121,14 @@ dependencies:
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 2.2.5
124
+ version: 2.2.6.4
125
125
  type: :development
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 2.2.5
131
+ version: 2.2.6.4
132
132
  - !ruby/object:Gem::Dependency
133
133
  name: puma
134
134
  requirement: !ruby/object:Gem::Requirement