rspec-tracer 0.6.0 → 0.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 +4 -4
- data/CHANGELOG.md +28 -0
- data/README.md +198 -227
- data/lib/rspec_tracer/cache.rb +1 -1
- data/lib/rspec_tracer/configuration.rb +15 -20
- data/lib/rspec_tracer/coverage_reporter.rb +7 -3
- data/lib/rspec_tracer/html_reporter/Rakefile +18 -0
- data/lib/rspec_tracer/remote_cache/Rakefile +38 -0
- data/lib/rspec_tracer/remote_cache/aws.rb +178 -0
- data/lib/rspec_tracer/remote_cache/cache.rb +36 -144
- data/lib/rspec_tracer/remote_cache/repo.rb +175 -0
- data/lib/rspec_tracer/remote_cache/validator.rb +52 -0
- data/lib/rspec_tracer/reporter.rb +9 -9
- data/lib/rspec_tracer/runner.rb +18 -8
- data/lib/rspec_tracer/time_formatter.rb +8 -5
- data/lib/rspec_tracer/version.rb +1 -1
- data/lib/rspec_tracer.rb +3 -3
- metadata +21 -17
- data/lib/rspec_tracer/remote_cache/git.rb +0 -113
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 675be2bd6603501deb282508ea234808f0bbdf60c2b626611919f84c32bb4ba9
|
4
|
+
data.tar.gz: 591be21b4e97c50f33385111ac758665a97e83ca82e154cd3b86d32133f7ef52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ab8ca453da65dd7185fa4869633d9b9ab85fb5c73cfb45929928a492d58d0e16d24e3bcef2466ceae4408c7e1ad2e5ab3f10137061ab684b1decf885809607d
|
7
|
+
data.tar.gz: 8dc1d3078f2c16c8ee5142c03d05222dd0bd458c979bca0a35ee1b1e44fead38ed2c1a6d84795a93f2a4d7a15c58da40562f4dae360f22e65f1518fc0ddecf75
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
## [0.8.0] - 2021-09-13
|
2
|
+
|
3
|
+
### Fixed
|
4
|
+
|
5
|
+
Unable to find cache in case of history rewrites (#33)
|
6
|
+
|
7
|
+
## [0.7.0] - 2021-09-10
|
8
|
+
|
9
|
+
### Fixed
|
10
|
+
|
11
|
+
Missing spec files for the gem
|
12
|
+
|
13
|
+
## [0.6.2] - 2021-09-07
|
14
|
+
|
15
|
+
### Added
|
16
|
+
|
17
|
+
Improvements towards reducing dependency and coverage processing time (#26)
|
18
|
+
|
19
|
+
## [0.6.1] - 2021-09-06
|
20
|
+
|
21
|
+
### Fixed
|
22
|
+
|
23
|
+
Bug in time formatter (#24)
|
24
|
+
|
25
|
+
### Added
|
26
|
+
|
27
|
+
Environment variable to control verbose output (#25)
|
28
|
+
|
1
29
|
## [0.6.0] - 2021-09-05
|
2
30
|
|
3
31
|
### Added
|
data/README.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|

|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
[](https://codeclimate.com/github/avmnu-sng/rspec-tracer/maintainability)
|
4
|
+
[](https://codeclimate.com/github/avmnu-sng/rspec-tracer/test_coverage)
|
5
|
+
[](https://badge.fury.io/rb/rspec-tracer)
|
6
|
+
|
7
|
+
RSpec Tracer is a **specs dependency analyzer**, **flaky tests detector**, **tests accelerator**,
|
8
|
+
and **coverage reporter** tool. It maintains a list of files for each test, enabling
|
9
|
+
itself to skip tests in the subsequent runs if none of the dependent files are changed.
|
6
10
|
|
7
11
|
It uses [Ruby's built-in coverage library](https://ruby-doc.org/stdlib/libdoc/coverage/rdoc/Coverage.html)
|
8
12
|
to keep track of the coverage for each test. For each test executed, the coverage
|
@@ -18,44 +22,24 @@ Knowing the examples and files dependency gives us a better insight into the cod
|
|
18
22
|
and we have **a clear idea of what to test for when making any changes**. With this data,
|
19
23
|
we can also analyze the coupling between different components and much more.
|
20
24
|
|
21
|
-
|
25
|
+
RSpec Tracer requires **Ruby 2.5+** and **rspec-core >= 3.6.0**. To use with **Rails 5+**,
|
26
|
+
make sure to use **rspec-rails >= 4.0.0**. If you are using SimpleCov, it is
|
27
|
+
recommended to use **simplecov >= 0.12.0**. To use RSpec Tracer **cache on CI**, you
|
28
|
+
need to have an **S3 bucket** and **[AWS CLI](https://aws.amazon.com/cli/)**
|
29
|
+
installed.
|
22
30
|
|
23
|
-
You should take some time and go through the **[document](./RSPEC_TRACER.md)**
|
24
|
-
the **intention** and implementation details of **managing dependency**,
|
25
|
-
**skipping tests**, and **caching on CI**.
|
26
|
-
integrating the gem into your project to better understand what is happening.
|
31
|
+
You should take some time and go through the **[document](./RSPEC_TRACER.md)**
|
32
|
+
describing the **intention** and implementation details of **managing dependency**,
|
33
|
+
**managing flaky tests**, **skipping tests**, and **caching on CI**.
|
27
34
|
|
28
35
|
## Table of Contents
|
29
36
|
|
30
37
|
* [Demo](#demo)
|
31
|
-
* [Installation](#installation)
|
32
|
-
* [Compatibility](#compatibility)
|
33
|
-
* [Additional Tools](#additional-tools)
|
34
38
|
* [Getting Started](#getting-started)
|
35
|
-
* [
|
36
|
-
|
37
|
-
* [CI](#ci)
|
38
|
-
* [LOCAL_AWS](#local_aws)
|
39
|
-
* [RSPEC_TRACER_NO_SKIP](#rspec_tracer_no_skip)
|
40
|
-
* [RSPEC_TRACER_S3_URI](#rspec_tracer_s3_uri)
|
41
|
-
* [RSPEC_TRACER_UPLOAD_LOCAL_CACHE](#rspec_tracer_upload_local_cache)
|
42
|
-
* [TEST_SUITES](#test_suites)
|
43
|
-
* [TEST_SUITE_ID](#test_suite_id)
|
44
|
-
* [Sample Reports](#sample-reports)
|
45
|
-
* [Examples](#examples)
|
46
|
-
* [Flaky Examples](#flaky-examples)
|
47
|
-
* [Examples Dependency](#examples-dependency)
|
48
|
-
* [Files Dependency](#files-dependency)
|
49
|
-
* [Configuring RSpec Tracer](#configuring-rspec-tracer)
|
39
|
+
* [Configuring CI Caching](#configuring-ci-caching)
|
40
|
+
* [Advanced Configuration](#advanced-configuration)
|
50
41
|
* [Filters](#filters)
|
51
|
-
|
52
|
-
* [String Filter](#string-filter)
|
53
|
-
* [Regex Filter](#regex-filter)
|
54
|
-
* [Block Filter](#block-filter)
|
55
|
-
* [Array Filter](#array-filter)
|
56
|
-
* [Contributing](#contributing)
|
57
|
-
* [License](#license)
|
58
|
-
* [Code of Conduct](#code-of-conduct)
|
42
|
+
* [Environment Variables](#environment-variables)
|
59
43
|
|
60
44
|
## Demo
|
61
45
|
|
@@ -65,259 +49,210 @@ integrating the gem into your project to better understand what is happening.
|
|
65
49
|
**Next Run**
|
66
50
|

|
67
51
|
|
52
|
+
You get the following three reports:
|
68
53
|
|
69
|
-
|
54
|
+
### All Examples Report
|
70
55
|
|
71
|
-
|
72
|
-
```ruby
|
73
|
-
gem 'rspec-tracer', group: :test, require: false
|
74
|
-
```
|
56
|
+
These reports provide basic test information:
|
75
57
|
|
76
|
-
|
77
|
-
```
|
78
|
-
/rspec_tracer_cache/
|
79
|
-
/rspec_tracer_coverage/
|
80
|
-
/rspec_tracer_report/
|
81
|
-
```
|
58
|
+
**First Run**
|
82
59
|
|
83
|
-
|
60
|
+

|
84
61
|
|
85
|
-
|
86
|
-
make sure to use **rspec-rails >= 4.0.0**. If you are using SimpleCov, it is
|
87
|
-
recommended to use **simplecov >= 0.12.0**.
|
62
|
+
**Next Run**
|
88
63
|
|
89
|
-
|
64
|
+

|
90
65
|
|
91
|
-
|
92
|
-
**[AWS CLI](https://aws.amazon.com/cli/)** installed.
|
66
|
+
### Flaky Examples Report
|
93
67
|
|
94
|
-
|
68
|
+
These reports provide flaky tests information. Assuming **the following two tests
|
69
|
+
failed in the first run.**
|
95
70
|
|
96
|
-
|
71
|
+
**Next Run**
|
97
72
|
|
98
|
-
|
73
|
+

|
99
74
|
|
100
|
-
|
101
|
-
and launch:
|
75
|
+
**Another Run**
|
102
76
|
|
103
|
-
|
104
|
-
require 'simplecov'
|
105
|
-
SimpleCov.start
|
77
|
+

|
106
78
|
|
107
|
-
|
108
|
-
require 'rspec_tracer'
|
109
|
-
RSpecTracer.start
|
110
|
-
```
|
79
|
+
### Examples Dependency Report
|
111
80
|
|
112
|
-
|
113
|
-
- SimpleCov **won't be able to provide branch coverage report** even when enabled.
|
114
|
-
- RSpec Tracer **nullifies the `SimpleCov.at_exit`** callback.
|
81
|
+
These reports show a list of dependent files for each test.
|
115
82
|
|
116
|
-
|
83
|
+

|
117
84
|
|
118
|
-
|
119
|
-
`test/test_helper.rb`). Note that `RSpecTracer.start` must be issued **before loading
|
120
|
-
any of the application code.**
|
85
|
+
### Files Dependency Report
|
121
86
|
|
122
|
-
|
123
|
-
# Load RSpec Tracer
|
124
|
-
require 'rspec_tracer'
|
125
|
-
RSpecTracer.start
|
126
|
-
```
|
87
|
+
These reports provide information on the total number of tests that will run after changing this particular file.
|
127
88
|
|
128
|
-
|
129
|
-
Rakefile in your project to have the following:
|
89
|
+

|
130
90
|
|
131
|
-
```ruby
|
132
|
-
spec = Gem::Specification.find_by_name('rspec-tracer')
|
133
91
|
|
134
|
-
|
135
|
-
```
|
136
|
-
3. Before running tests, download the remote cache using the following rake task:
|
92
|
+
## Getting Started
|
137
93
|
|
138
|
-
|
139
|
-
|
94
|
+
1. Add this line to your `Gemfile` and `bundle install`:
|
95
|
+
```ruby
|
96
|
+
gem 'rspec-tracer', '~> 0.7', group: :test, require: false
|
140
97
|
```
|
141
|
-
4. Run the tests with RSpec using `bundle exec rspec`.
|
142
|
-
5. After running tests, upload the local cache using the following rake task:
|
143
98
|
|
144
|
-
|
145
|
-
bundle exec rake rspec_tracer:remote_cache:upload
|
99
|
+
And, add the followings to your `.gitignore`:
|
146
100
|
```
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
### BUNDLE_PATH
|
156
|
-
|
157
|
-
Since the bundler uses a vendor directory inside the project, it might cause slowness
|
158
|
-
depending on the vendor size. You can configure the bundle path outside of the project
|
159
|
-
using `BUNDLE_PATH` environment variable, for example, `BUNDLE_PATH=$HOME/vendor/bundle`.
|
160
|
-
Make sure to cache this directory in the CI configuration.
|
161
|
-
|
162
|
-
### CI
|
163
|
-
|
164
|
-
Mostly all the CI have `CI=true`. If not, you should explicitly set it to `true`.
|
165
|
-
|
166
|
-
### LOCAL_AWS
|
167
|
-
|
168
|
-
In case you want to test out the caching feature in the local development environment.
|
169
|
-
You can install [localstack](https://github.com/localstack/localstack) and
|
170
|
-
[awscli-local](https://github.com/localstack/awscli-local) and then invoke the
|
171
|
-
rake tasks with `LOCAL_AWS=true`.
|
172
|
-
|
173
|
-
### RSPEC_TRACER_NO_SKIP
|
174
|
-
|
175
|
-
The default value is `false.` If set to `true`, the RSpec Tracer will not skip
|
176
|
-
any tests. Note that it will continue to maintain cache files and generate reports.
|
101
|
+
/rspec_tracer_cache/
|
102
|
+
/rspec_tracer_coverage/
|
103
|
+
/rspec_tracer_report/
|
104
|
+
```
|
105
|
+
2. Load and launch RSpec Tracer at the very top of `spec_helper.rb` (or `rails_helper.rb`,
|
106
|
+
`test/test_helper.rb`). Note that `RSpecTracer.start` must be issued **before loading
|
107
|
+
any of the application code.**
|
177
108
|
|
178
|
-
```ruby
|
179
|
-
|
180
|
-
|
109
|
+
```ruby
|
110
|
+
# Load RSpec Tracer
|
111
|
+
require 'rspec_tracer'
|
112
|
+
RSpecTracer.start
|
113
|
+
```
|
181
114
|
|
182
|
-
|
115
|
+
**If you are using SimpleCov**, load RSpec Tracer right after the SimpleCov load
|
116
|
+
and launch:
|
183
117
|
|
184
|
-
|
118
|
+
```ruby
|
119
|
+
require 'simplecov'
|
120
|
+
SimpleCov.start
|
185
121
|
|
186
|
-
|
187
|
-
|
188
|
-
|
122
|
+
# Load RSpec Tracer
|
123
|
+
require 'rspec_tracer'
|
124
|
+
RSpecTracer.start
|
125
|
+
```
|
189
126
|
|
190
|
-
|
127
|
+
Currently using RSpec Tracer with SimpleCov has the following two limitations:
|
191
128
|
|
192
|
-
|
193
|
-
|
129
|
+
- SimpleCov **won't be able to provide branch coverage report** even when enabled.
|
130
|
+
- RSpec Tracer **nullifies the `SimpleCov.at_exit`** callback.
|
194
131
|
|
195
|
-
|
132
|
+
3. After running your tests, open `rspec_tracer_report/index.html` in the browser
|
133
|
+
of your choice.
|
196
134
|
|
197
|
-
|
198
|
-
number of different test suites you are running.
|
135
|
+
## Configuring CI Caching
|
199
136
|
|
137
|
+
To enable RSpec Tracer to share cache between different builds on CI, update the
|
138
|
+
Rakefile in your project to have the following:
|
200
139
|
```ruby
|
201
|
-
|
202
|
-
```
|
203
|
-
|
204
|
-
### TEST_SUITE_ID
|
140
|
+
spec = Gem::Specification.find_by_name('rspec-tracer')
|
205
141
|
|
206
|
-
|
207
|
-
separate groups. This way, RSpec Tracer is not overwhelmed with loading massive
|
208
|
-
cached data in the memory. Also, it generates and uses cache for specific test suites
|
209
|
-
and not merge them.
|
210
|
-
|
211
|
-
```ruby
|
212
|
-
TEST_SUITE_ID=1 bundle exec rspec spec/models
|
213
|
-
TEST_SUITE_ID=2 bundle exec rspec spec/helpers
|
142
|
+
load "#{spec.gem_dir}/lib/rspec_tracer/remote_cache/Rakefile"
|
214
143
|
```
|
215
144
|
|
216
|
-
|
217
|
-
the total number of test suites when downloading the cache files.
|
218
|
-
|
145
|
+
Before running tests, download the remote cache using the following rake task:
|
219
146
|
```sh
|
220
|
-
|
147
|
+
bundle exec rake rspec_tracer:remote_cache:download
|
221
148
|
```
|
222
149
|
|
223
|
-
|
224
|
-
the S3 for each test suite, not just for the current one. Also, while uploading,
|
225
|
-
make sure to provide the test suite id.
|
226
|
-
|
150
|
+
After running tests, upload the local cache using the following rake task:
|
227
151
|
```sh
|
228
|
-
|
152
|
+
bundle exec rake rspec_tracer:remote_cache:upload
|
229
153
|
```
|
230
154
|
|
231
|
-
|
232
|
-
|
233
|
-
You get the following three reports:
|
234
|
-
|
235
|
-
### Examples
|
155
|
+
You must set the following two environment variables:
|
236
156
|
|
237
|
-
|
157
|
+
- **`GIT_BRANCH`** is the git branch name you are running the CI build on.
|
158
|
+
- **`RSPEC_TRACER_S3_URI`** is the S3 bucket path to store the cache files.
|
159
|
+
```sh
|
160
|
+
export RSPEC_TRACER_S3_URI=s3://ci-artifacts-bucket/rspec-tracer-cache
|
161
|
+
```
|
238
162
|
|
239
|
-
|
240
|
-
|
241
|
-

|
242
|
-
|
243
|
-
**Next Run**
|
244
|
-
|
245
|
-

|
246
|
-
|
247
|
-
### Flaky Examples
|
248
|
-
|
249
|
-
These reports provide flaky tests information. Assuming **the following two tests
|
250
|
-
failed in the first run.**
|
251
|
-
|
252
|
-
**Next Run**
|
253
|
-
|
254
|
-

|
255
|
-
|
256
|
-
**Another Run**
|
257
|
-
|
258
|
-

|
259
|
-
|
260
|
-
### Examples Dependency
|
261
|
-
|
262
|
-
These reports show a list of dependent files for each test.
|
263
|
-
|
264
|
-

|
265
|
-
|
266
|
-
### Files Dependency
|
267
|
-
|
268
|
-
These reports provide information on the total number of tests that will run after changing this particular file.
|
269
|
-
|
270
|
-

|
271
|
-
|
272
|
-
## Configuring RSpec Tracer
|
163
|
+
## Advanced Configuration
|
273
164
|
|
274
165
|
Configuration settings can be applied in three formats, which are completely equivalent:
|
275
166
|
|
276
167
|
- The most common way is to configure it directly in your start block:
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
```
|
168
|
+
```ruby
|
169
|
+
RSpecTracer.start do
|
170
|
+
config_option 'foo'
|
171
|
+
end
|
172
|
+
```
|
283
173
|
- You can also set all configuration options directly:
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
```
|
174
|
+
```ruby
|
175
|
+
RSpecTracer.config_option 'foo'
|
176
|
+
```
|
288
177
|
|
289
178
|
- If you do not want to start tracer immediately after launch or want to add
|
290
179
|
additional configuration later on in a concise way, use:
|
180
|
+
```ruby
|
181
|
+
RSpecTracer.configure do
|
182
|
+
config_option 'foo'
|
183
|
+
end
|
184
|
+
```
|
291
185
|
|
292
|
-
|
293
|
-
RSpecTracer.configure do
|
294
|
-
config_option 'foo'
|
295
|
-
end
|
296
|
-
```
|
186
|
+
The available configuration options are:
|
297
187
|
|
298
|
-
|
188
|
+
- **`root dir`** to set the project root. The default value is the current working
|
189
|
+
directory.
|
190
|
+
- **`add_filter filter`** to apply [filters](#filters) on the source files to
|
191
|
+
exclude them from the dependent files list.
|
192
|
+
- **`filters.clear`** to remove the default configured dependent files filters.
|
193
|
+
- **`add_coverage_filter filter`** to apply [filters](#filters) on the source files
|
194
|
+
to exclude them from the coverage report.
|
195
|
+
- **`coverage_filters.clear`** to remove the default configured coverage files filters.
|
196
|
+
- **`coverage_track_files glob`** to include files in the given glob pattern in
|
197
|
+
the coverage report if these files are not already present.
|
299
198
|
|
300
|
-
|
199
|
+
```ruby
|
200
|
+
RSpecTracer.start do
|
201
|
+
# Configure project root
|
202
|
+
root '/tmp/my_project'
|
301
203
|
|
302
|
-
|
204
|
+
# Clear existing filters
|
205
|
+
filters.clear
|
206
|
+
# Add dependent files filter
|
207
|
+
add_filter %r{^/tasks/}
|
303
208
|
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
```
|
309
|
-
- To exclude selected files from the coverage data. You should only use this
|
310
|
-
when not using SimpleCov.
|
209
|
+
# Clear existing coverage filters
|
210
|
+
coverage_filters.clear
|
211
|
+
# Add coverage files filter
|
212
|
+
add_coverage_filter %w[/features/ /spec/ /tests/]
|
311
213
|
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
214
|
+
# Define glob to track files in the coverage report
|
215
|
+
coverage_track_files '{app,lib}/**/*.rb'
|
216
|
+
end
|
217
|
+
```
|
218
|
+
|
219
|
+
You can configure the RSpec Tracer reports directories using the following environment
|
220
|
+
variables:
|
221
|
+
|
222
|
+
- **`RSPEC_TRACER_CACHE_DIR`** to update the default cache directory (`rspec_tracer_cache`).
|
223
|
+
```sh
|
224
|
+
export RSPEC_TRACER_CACHE_DIR=/tmp/rspec_tracer_cache
|
225
|
+
```
|
226
|
+
- **`RSPEC_TRACER_COVERAGE_DIR`** to update the default coverage directory (`rspec_tracer_coverage`).
|
227
|
+
```sh
|
228
|
+
export RSPEC_TRACER_CACHE_DIR=/tmp/rspec_tracer_coverage
|
229
|
+
```
|
230
|
+
- **`RSPEC_TRACER_REPORT_DIR`** to update the default html reports directory (`rspec_tracer_report`).
|
231
|
+
```sh
|
232
|
+
export RSPEC_TRACER_CACHE_DIR=/tmp/rspec_tracer_report
|
233
|
+
```
|
234
|
+
|
235
|
+
These settings are available through environment variables because the rake tasks
|
236
|
+
to download and upload the cache files need to use the same directories.
|
237
|
+
|
238
|
+
## Filters
|
317
239
|
|
318
|
-
By default,
|
319
|
-
|
320
|
-
|
240
|
+
By default, RSpec Tracer ignores all the files outside of the project root directory -
|
241
|
+
otherwise you would end up with the source files in the gems you are using in the
|
242
|
+
project. It also applies the following filters:
|
243
|
+
```ruby
|
244
|
+
RSpecTracer.configure do
|
245
|
+
add_filter '/vendor/bundle/'
|
246
|
+
|
247
|
+
add_coverage_filter %w[
|
248
|
+
/autotest/
|
249
|
+
/features/
|
250
|
+
/spec/
|
251
|
+
/test/
|
252
|
+
/vendor/bundle/
|
253
|
+
].freeze
|
254
|
+
end
|
255
|
+
```
|
321
256
|
|
322
257
|
### Defining Custom Filteres
|
323
258
|
|
@@ -369,6 +304,42 @@ end
|
|
369
304
|
|
370
305
|
You can pass in an array containing any of the other filter types.
|
371
306
|
|
307
|
+
## Environment Variables
|
308
|
+
|
309
|
+
To get better control on execution, you can use the following environment variables
|
310
|
+
whenever required.
|
311
|
+
|
312
|
+
- **`LOCAL_AWS (default: false)`:** In case you want to test out the caching feature in the local
|
313
|
+
development environment. You can install [localstack](https://github.com/localstack/localstack)
|
314
|
+
and [awscli-local](https://github.com/localstack/awscli-local) and then invoke the
|
315
|
+
rake tasks with `LOCAL_AWS=true`.
|
316
|
+
|
317
|
+
- **`RSPEC_TRACER_NO_SKIP (default: false)`:** Use this environment variables to
|
318
|
+
not skip any tests. Note that it will continue to maintain cache files and generate
|
319
|
+
reports.
|
320
|
+
|
321
|
+
- **`RSPEC_TRACER_UPLOAD_LOCAL_CACHE (default: false)`:** By default, RSpec Tracer
|
322
|
+
does not upload local cache files. You can set this environment variable to `true`
|
323
|
+
to upload the local cache to S3.
|
324
|
+
|
325
|
+
- **`RSPEC_TRACER_VERBOSE (default: false)`:** To print the intermediate steps
|
326
|
+
and time taken, use this environment variable.
|
327
|
+
|
328
|
+
- **`TEST_SUITES`:** Set this environment variable when running parallel builds
|
329
|
+
in the CI. It determines the total number of different test suites you are running.
|
330
|
+
```sh
|
331
|
+
export TEST_SUITES=8
|
332
|
+
```
|
333
|
+
|
334
|
+
- **`TEST_SUITE_ID`:** If you have a large set of tests to run, it is recommended
|
335
|
+
to run them in separate groups. This way, RSpec Tracer is not overwhelmed with
|
336
|
+
loading massive cached data in the memory. Also, it generates and uses cache for
|
337
|
+
specific test suites and not merge them.
|
338
|
+
```sh
|
339
|
+
TEST_SUITE_ID=1 bundle exec rspec spec/models
|
340
|
+
TEST_SUITE_ID=2 bundle exec rspec spec/helpers
|
341
|
+
```
|
342
|
+
|
372
343
|
## Contributing
|
373
344
|
|
374
345
|
Read the [contribution guide](https://github.com/avmnu-sng/rspec-tracer/blob/main/.github/CONTRIBUTING.md).
|