ruby_raider 3.7.0 → 3.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1dcadd35b6861c6b6e789c0c06cdd4b2febd6d0fdd664eb65faff04ddf206856
4
- data.tar.gz: fdc320f7e5c560920318b9d3fd4a46a1aec8ef9bfadd371820f85b5b72ed75e5
3
+ metadata.gz: 9cd1d87871eeb4bad99f5952f35a7f81da1f54d9170536ebd959ebe19403d63d
4
+ data.tar.gz: 0bdb788bce2e8245483176ebe5118ff046fef892ae8767d74986384d9747deba
5
5
  SHA512:
6
- metadata.gz: dc8218ab6eff3ebf9b86cde049cc9876ee2528e86adaa60ed2cb954401417df4acdb68cb28a1d948524b87429a6680c0906717ee5fc0117d9adc00c4054b6348
7
- data.tar.gz: '0094141af34fd3154591755d8fb882f6604aca77b8d5a94bd0946c49474fb6b53e91746af5a656b6ac35a62de17881ee93fafc84f0e1f5c03189db32195dfafe'
6
+ metadata.gz: 0a9f31493361abd7af6a78f8afe18a7d6f82569c364ed08c17445705bc3e0e5ef770a0da54b927139996393622a49306433b8aa0deccd61483a8af724b432fcc
7
+ data.tar.gz: 85c9d92cf395f858f4c2977a382c96385ebb82992cdc6ad100477ed8c9d91f34a6ea302a3cea26a612e5b682b4ad1b3d398449420abc6e5f58c3b5eaa8ccebbb
data/README.md CHANGED
@@ -60,7 +60,7 @@ Every generated project comes with:
60
60
 
61
61
  - **Page Object Model** — Base page and component classes with example pages
62
62
  - **Test examples** — Working login tests against the [Raider Test Store](https://raider-test-site.onrender.com/)
63
- - **Raider reporting** — RSpec and Cucumber projects include [raider_reporter](https://github.com/RaiderHQ/raider_reporter), which writes results to `raider-results/` and uploads runs when `RAIDER_TOKEN` and `RAIDER_ENDPOINT` are set
63
+ - **Raider reporting** — RSpec and Cucumber projects include [raider_reporter](https://github.com/RaiderHQ/raider_reporter), which writes results to `raider-results/` and uploads runs when `RAIDER_TOKEN` and `RAIDER_ENDPOINT` are set; generated CI runs the suite through `raider-reporter exec` with `RAIDER_QUARANTINE`, so quarantined tests do not fail the build
64
64
  - **GitHub Actions CI** — Ready-to-use test pipeline
65
65
  - **Rake tasks** — Default, smoke, and regression tasks with tag-based filtering
66
66
  - **Retry support** — RSpec retry with configurable retry count via `RETRY_COUNT` env var
@@ -21,11 +21,12 @@ jobs:
21
21
  inputs: { versionSpec: '3.4' }
22
22
  - script: bundle install
23
23
  displayName: Install gems
24
- - script: <%- if cucumber? -%>bundle exec cucumber features/ --format pretty<%- else -%>bundle exec rspec spec/ --format documentation<%- end %>
24
+ - script: <%- if cucumber? -%>bundle exec raider-reporter exec -- bundle exec cucumber features/ --format pretty<%- else -%>bundle exec raider-reporter exec -- bundle exec rspec spec/ --format documentation<%- end %>
25
25
  displayName: Run tests
26
26
  env:
27
27
  RAIDER_TOKEN: $(RAIDER_TOKEN)
28
28
  RAIDER_ENDPOINT: $(RAIDER_ENDPOINT)
29
+ RAIDER_QUARANTINE: 1
29
30
  - task: PublishPipelineArtifact@1
30
31
  condition: always()
31
32
  inputs: { targetPath: raider-results, artifact: raider-results-$(System.JobPositionInPhase)-$(System.JobAttempt) }
@@ -34,11 +34,12 @@ jobs:
34
34
  chrome-version: stable
35
35
 
36
36
  - name: Run tests
37
- run: <%- if framework == 'cucumber' -%>bundle exec cucumber features --format pretty<%- else -%>bundle exec rspec spec --format documentation<%- end %>
37
+ run: <%- if framework == 'cucumber' -%>bundle exec raider-reporter exec -- bundle exec cucumber features --format pretty<%- else -%>bundle exec raider-reporter exec -- bundle exec rspec spec --format documentation<%- end %>
38
38
  env:
39
39
  HEADLESS: true
40
40
  RAIDER_TOKEN: ${{ secrets.RAIDER_TOKEN }}
41
41
  RAIDER_ENDPOINT: ${{ vars.RAIDER_ENDPOINT }}
42
+ RAIDER_QUARANTINE: "1"
42
43
 
43
44
  - name: Upload Raider results
44
45
  uses: actions/upload-artifact@v4
@@ -46,14 +46,15 @@ jobs:
46
46
 
47
47
  - name: Run tests
48
48
  <%- if cucumber? -%>
49
- run: bundle exec cucumber features/ --format pretty
49
+ run: bundle exec raider-reporter exec -- bundle exec cucumber features/ --format pretty
50
50
  <%- else -%>
51
- run: bundle exec rspec spec/ --format documentation
51
+ run: bundle exec raider-reporter exec -- bundle exec rspec spec/ --format documentation
52
52
  <%- end -%>
53
53
  env:
54
54
  APP_PATH: ${{ github.workspace }}/apps/RaiderTestApp.app
55
55
  RAIDER_TOKEN: ${{ secrets.RAIDER_TOKEN }}
56
56
  RAIDER_ENDPOINT: ${{ vars.RAIDER_ENDPOINT }}
57
+ RAIDER_QUARANTINE: "1"
57
58
 
58
59
  - name: Upload Raider results
59
60
  uses: actions/upload-artifact@v4
@@ -105,14 +106,15 @@ jobs:
105
106
  profile: pixel_8
106
107
  script: |
107
108
  <%- if cucumber? -%>
108
- bundle exec cucumber features/ --format pretty
109
+ bundle exec raider-reporter exec -- bundle exec cucumber features/ --format pretty
109
110
  <%- else -%>
110
- bundle exec rspec spec/ --format documentation
111
+ bundle exec raider-reporter exec -- bundle exec rspec spec/ --format documentation
111
112
  <%- end -%>
112
113
  env:
113
114
  APP_PATH: ${{ github.workspace }}/apps/app-release.apk
114
115
  RAIDER_TOKEN: ${{ secrets.RAIDER_TOKEN }}
115
116
  RAIDER_ENDPOINT: ${{ vars.RAIDER_ENDPOINT }}
117
+ RAIDER_QUARANTINE: "1"
116
118
 
117
119
  - name: Upload Raider results
118
120
  uses: actions/upload-artifact@v4
@@ -13,7 +13,7 @@ gem 'parallel_split_test'
13
13
  gem 'parallel_tests'
14
14
  gem 'rake'
15
15
  gem 'reek'
16
- gem 'raider_reporter', '~> 0.7'
16
+ gem 'raider_reporter', '~> 0.8'
17
17
  <%- if rspec? -%>
18
18
  gem 'rspec-retry'
19
19
  <%- end -%>
@@ -108,6 +108,14 @@ Without `RAIDER_TOKEN`, nothing is uploaded and the suite output is unchanged. F
108
108
  report and to Raider. See the [raider_reporter README](https://github.com/RaiderHQ/raider_reporter) for details.
109
109
  <%- end -%>
110
110
 
111
+ <%- unless azure? && mobile? -%>
112
+ ### Quarantine
113
+
114
+ CI runs the suite through `bundle exec raider-reporter exec -- …` with `RAIDER_QUARANTINE` set. Tests quarantined in
115
+ Raider still run and are still reported (as `quarantined`), and a build whose only failures are quarantined stays green.
116
+ Local runs keep quarantine off. To turn it off in CI, remove `RAIDER_QUARANTINE` from the pipeline.
117
+
118
+ <%- end -%>
111
119
  <%- if azure? && mobile? -%>
112
120
  ## CI
113
121
 
data/lib/version CHANGED
@@ -1 +1 @@
1
- 3.7.0
1
+ 3.8.0
@@ -27,9 +27,9 @@ describe 'Azure Pipelines content' do
27
27
  let(:yml) { YAML.safe_load(raw) }
28
28
  let(:run_command) do
29
29
  if framework == 'cucumber'
30
- 'bundle exec cucumber features/ --format pretty'
30
+ 'bundle exec raider-reporter exec -- bundle exec cucumber features/ --format pretty'
31
31
  else
32
- 'bundle exec rspec spec/ --format documentation'
32
+ 'bundle exec raider-reporter exec -- bundle exec rspec spec/ --format documentation'
33
33
  end
34
34
  end
35
35
 
@@ -49,7 +49,8 @@ describe 'Azure Pipelines content' do
49
49
 
50
50
  it 'passes exactly the Raider settings to the test step' do
51
51
  step = yml['jobs'][0]['steps'].find { |s| s['script'] == run_command }
52
- expect(step['env']).to eq('RAIDER_TOKEN' => '$(RAIDER_TOKEN)', 'RAIDER_ENDPOINT' => '$(RAIDER_ENDPOINT)')
52
+ expect(step['env']).to eq('RAIDER_TOKEN' => '$(RAIDER_TOKEN)', 'RAIDER_ENDPOINT' => '$(RAIDER_ENDPOINT)',
53
+ 'RAIDER_QUARANTINE' => 1)
53
54
  expect(yml['variables']['HEADLESS']).to eq('true')
54
55
  end
55
56
 
@@ -75,7 +75,18 @@ describe 'CI pipeline content' do
75
75
  expect(test_steps).not_to be_empty
76
76
  test_steps.each do |step|
77
77
  expect(step['env']).to include('RAIDER_TOKEN' => '${{ secrets.RAIDER_TOKEN }}',
78
- 'RAIDER_ENDPOINT' => '${{ vars.RAIDER_ENDPOINT }}')
78
+ 'RAIDER_ENDPOINT' => '${{ vars.RAIDER_ENDPOINT }}',
79
+ 'RAIDER_QUARANTINE' => '1')
80
+ end
81
+ end
82
+
83
+ it 'runs every test command through raider-reporter exec' do
84
+ expect(test_steps).not_to be_empty
85
+ test_steps.each do |step|
86
+ command = step['run'] || step['with']['script']
87
+ wrapped = command.scan(/raider-reporter exec -- bundle exec #{runner}\b/).size
88
+ expect(wrapped).to be_positive
89
+ expect(command.scan(/bundle exec #{runner}\b/).size).to eq(wrapped)
79
90
  end
80
91
  end
81
92
 
@@ -127,7 +127,7 @@ describe 'Gemfile content' do
127
127
  let(:gemfile) { read_generated("#{FrameworkIndex::RSPEC}_#{automation}", 'Gemfile') }
128
128
 
129
129
  it 'includes raider_reporter' do
130
- expect(gemfile).to include("gem 'raider_reporter', '~> 0.7'")
130
+ expect(gemfile).to include("gem 'raider_reporter', '~> 0.8'")
131
131
  end
132
132
 
133
133
  it 'has no allure gems' do
@@ -143,7 +143,7 @@ describe 'Gemfile content' do
143
143
  let(:gemfile) { read_generated("#{FrameworkIndex::CUCUMBER}_#{automation}", 'Gemfile') }
144
144
 
145
145
  it 'includes raider_reporter' do
146
- expect(gemfile).to include("gem 'raider_reporter', '~> 0.7'")
146
+ expect(gemfile).to include("gem 'raider_reporter', '~> 0.8'")
147
147
  end
148
148
 
149
149
  it 'drops allure-cucumber' do
@@ -16,6 +16,10 @@ describe 'Generated Readme content' do
16
16
  'https://github.com/RaiderHQ/raider_reporter')
17
17
  end
18
18
 
19
+ it 'explains quarantine in CI' do
20
+ expect(readme).to include('### Quarantine', 'RAIDER_QUARANTINE', 'raider-reporter exec')
21
+ end
22
+
19
23
  it 'points to the local HTML report' do
20
24
  expect(readme).to include('raider-results/index.html')
21
25
  expect(readme).not_to match(/allure/i)
@@ -34,6 +38,10 @@ describe 'Generated Readme content' do
34
38
  'https://github.com/RaiderHQ/raider_reporter')
35
39
  end
36
40
 
41
+ it 'explains quarantine in CI' do
42
+ expect(readme).to include('### Quarantine', 'RAIDER_QUARANTINE', 'raider-reporter exec')
43
+ end
44
+
37
45
  it 'does not mention Allure' do
38
46
  expect(readme).not_to match(/allure/i)
39
47
  end
@@ -18,8 +18,8 @@ describe 'RSpec projects without Allure' do
18
18
  expect(File).not_to exist(File.join(project_name, 'allure-results'))
19
19
  end
20
20
 
21
- it 'pins raider_reporter 0.7' do
22
- expect(read_generated(project_name, 'Gemfile')).to include("gem 'raider_reporter', '~> 0.7'")
21
+ it 'pins raider_reporter 0.8' do
22
+ expect(read_generated(project_name, 'Gemfile')).to include("gem 'raider_reporter', '~> 0.8'")
23
23
  end
24
24
  end
25
25
  end
@@ -104,10 +104,10 @@ describe 'End-to-End Project Generation and Execution' do
104
104
  expect(bundle_install(project)).to be true
105
105
  end
106
106
 
107
- it 'resolves raider_reporter 0.5 from RubyGems and ships the raider-reporter executable', :aggregate_failures do
107
+ it 'resolves raider_reporter 0.8 from RubyGems and ships the raider-reporter executable', :aggregate_failures do
108
108
  skip 'Bundle install failed' unless bundle_install(project)
109
109
 
110
- expect(File.read(File.join(project, 'Gemfile.lock'))).to match(/^ raider_reporter \(0\.5\.\d+\)$/)
110
+ expect(File.read(File.join(project, 'Gemfile.lock'))).to match(/^ raider_reporter \(0\.8\.\d+\)$/)
111
111
  result = run_in_project(project, 'bundle exec raider-reporter --help', timeout: 60)
112
112
  expect(result[:exit_code]).to eq(0), "STDOUT: #{result[:stdout]}\nSTDERR: #{result[:stderr]}"
113
113
  expect(result[:stdout] + result[:stderr]).to include('raider-reporter comment')
@@ -163,11 +163,11 @@ describe 'End-to-End Project Generation and Execution' do
163
163
  "STDERR: #{result[:stderr]}"
164
164
  end
165
165
 
166
- it 'resolves raider_reporter 0.5 from RubyGems and requires its Cucumber plugin', :aggregate_failures do
166
+ it 'resolves raider_reporter 0.8 from RubyGems and requires its Cucumber plugin', :aggregate_failures do
167
167
  skip 'Bundle install failed' unless bundle_install(project)
168
168
 
169
169
  lockfile = File.read(File.join(project, 'Gemfile.lock'))
170
- expect(lockfile).to match(/^ raider_reporter \(0\.5\.\d+\)$/)
170
+ expect(lockfile).to match(/^ raider_reporter \(0\.8\.\d+\)$/)
171
171
  expect(File.read(File.join(project, 'features/support/env.rb'))).to include("require 'raider_reporter/cucumber'")
172
172
  end
173
173
 
@@ -310,12 +310,12 @@ describe 'End-to-End Project Generation and Execution' do
310
310
  describe 'Selenium + RSpec' do
311
311
  let(:project) { generate_azure_project('rspec') }
312
312
 
313
- it 'ships azure-pipelines.yml and resolves raider_reporter 0.5', :aggregate_failures do
313
+ it 'ships azure-pipelines.yml and resolves raider_reporter 0.8', :aggregate_failures do
314
314
  expect(File).to exist(File.join(project, 'azure-pipelines.yml'))
315
315
  expect(File).not_to exist(File.join(project, '.github/workflows'))
316
316
  skip 'Bundle install failed' unless bundle_install(project)
317
317
 
318
- expect(File.read(File.join(project, 'Gemfile.lock'))).to match(/^ raider_reporter \(0\.5\.\d+\)$/)
318
+ expect(File.read(File.join(project, 'Gemfile.lock'))).to match(/^ raider_reporter \(0\.8\.\d+\)$/)
319
319
  end
320
320
 
321
321
  it 'records provider azure_pipelines and an azure_pipelines: build key in run.json', :aggregate_failures, :slow do
@@ -332,11 +332,11 @@ describe 'End-to-End Project Generation and Execution' do
332
332
  describe 'Selenium + Cucumber' do
333
333
  let(:project) { generate_azure_project('cucumber') }
334
334
 
335
- it 'ships azure-pipelines.yml and resolves raider_reporter 0.5', :aggregate_failures do
335
+ it 'ships azure-pipelines.yml and resolves raider_reporter 0.8', :aggregate_failures do
336
336
  expect(File).to exist(File.join(project, 'azure-pipelines.yml'))
337
337
  skip 'Bundle install failed' unless bundle_install(project)
338
338
 
339
- expect(File.read(File.join(project, 'Gemfile.lock'))).to match(/^ raider_reporter \(0\.5\.\d+\)$/)
339
+ expect(File.read(File.join(project, 'Gemfile.lock'))).to match(/^ raider_reporter \(0\.8\.\d+\)$/)
340
340
  end
341
341
 
342
342
  it 'records provider azure_pipelines and an azure_pipelines: build key in run.json', :aggregate_failures, :slow do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_raider
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.0
4
+ version: 3.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pequeno
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2026-10-24 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rake
@@ -354,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
354
  - !ruby/object:Gem::Version
355
355
  version: '0'
356
356
  requirements: []
357
- rubygems_version: 4.0.6
357
+ rubygems_version: 3.6.2
358
358
  specification_version: 4
359
359
  summary: A gem to make setup and start of UI automation projects easier
360
360
  test_files: []