test-prof 0.8.0 → 0.9.0

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: 65bd3447c63c3e7c037707ebd0f637831ccf0c98af1b0b3d9bf0a6fa72c56b11
4
- data.tar.gz: d6af1b43e6924c67ef4c2297602ef641377584f3282eafc236e48eb951e04b68
3
+ metadata.gz: 6cf66f80707806f1378f3164e1376e6ee8fe5c3472d0704ef865de4939852283
4
+ data.tar.gz: 472ea3dde66363470b5e62995548760359f5ecd358b84099d12d9a622b36063d
5
5
  SHA512:
6
- metadata.gz: 2eae07fcbce70eb7598b92fc578530ed5e20edfb3d7752c672740d44aa13f5d925005500aa26e83ce004c0b2ba128b0091362c39771b67e12d352360aacc2081
7
- data.tar.gz: 213858acbdaa8d5e2e6e1fcdd99ca952a044949d23846f631a34513d379ce583013c13ed76c0303c8bd8fec777f44b99bf992e8937598d22bf4110cedb408eb6
6
+ metadata.gz: 4c21d8cae35943af31f72617a20b11d653ade888ba264c510dbe1fc365052a3ed7c7e04a7516b967a4f47dcb2442754a0d4e60053c385ae859963b666d239f9e
7
+ data.tar.gz: 7615a8bdb3d087c254333c265ffd759d13b51e76c6913d8e38a6856bdc036303f096ef2f2fb83c1b867024a87fe4989635105361103e85d7e1f4b14c0ae584bd
@@ -1,6 +1,57 @@
1
1
  # Change log
2
2
 
3
- ## master
3
+ ## master (unreleased)
4
+
5
+ ## 0.9.0 (2019-05-14)
6
+
7
+ - Add threshold and custom event support to FactoryDoctor. ([@palkan][])
8
+
9
+ ```sh
10
+ $ FDOC=1 FDOC_EVENT="sql.rom" FDOC_THRESHOLD=0.1 rspec
11
+ ```
12
+
13
+ - Add Fabrication support to FactoryDoctor. ([@palkan][])
14
+
15
+ - Add `guard` and `top_level` options to `EventProf::Monitor`. ([@palkan][])
16
+
17
+ For example:
18
+
19
+ ```ruby
20
+ TestProf::EventProf.monitor(
21
+ Sidekiq::Client,
22
+ "sidekiq.inline",
23
+ :raw_push,
24
+ top_level: true,
25
+ guard: ->(*) { Sidekiq::Testing.inline? }
26
+ )
27
+ ```
28
+
29
+ - Add global `before_all` hooks. ([@danielwaterworth][], [@palkan][])
30
+
31
+ Now you can run additional code before and after every `before_all` transaction
32
+ begins and rollbacks:
33
+
34
+ ```ruby
35
+ TestProf::BeforeAll.configure do |config|
36
+ config.before(:begin) do
37
+ # do something before transaction opens
38
+ end
39
+
40
+ config.after(:rollback) do
41
+ # do something after transaction closes
42
+ end
43
+ end
44
+ ```
45
+
46
+ - Add ability to use `let_it_be` aliases with predefined options. ([@danielwaterworth][])
47
+
48
+ ```ruby
49
+ TestProf::LetItBe.configure do |config|
50
+ config.alias_to :let_it_be_with_refind, refind: true
51
+ end
52
+ ```
53
+
54
+ - Made FactoryProf measure and report on timing ([@danielwaterworth][])
4
55
 
5
56
  ## 0.8.0 (2019-04-12) 🚀
6
57
 
@@ -38,10 +89,10 @@
38
89
 
39
90
  - Improve test sampling.([@mkldon][])
40
91
 
41
- ```bash
42
- SAMPLE=10 rake test # runs 10 random test examples
43
- SAMPLE_GROUPS=10 rake test # runs 10 random example groups
44
- ```
92
+ ```bash
93
+ $ SAMPLE=10 rake test # runs 10 random test examples
94
+ $ SAMPLE_GROUPS=10 rake test # runs 10 random example groups
95
+ ```
45
96
 
46
97
  - Extend Event Prof formatter to include the absolute run time and the percentage of the event tim [#100](https://github.com/palkan/test-prof/issues/100) ([@dmagro][])
47
98
 
@@ -53,32 +104,32 @@
53
104
 
54
105
  - Add ability to ignore connection configurations in shared connection.([@palkan][])
55
106
 
56
- Example:
107
+ Example:
57
108
 
58
- ```ruby
59
- # Do not use shared connection for sqlite db
60
- TestProf::ActiveRecordSharedConnection.ignore { |config| config[:adapter] == "sqlite3" }
61
- ```
109
+ ```ruby
110
+ # Do not use shared connection for sqlite db
111
+ TestProf::ActiveRecordSharedConnection.ignore { |config| config[:adapter] == "sqlite3" }
112
+ ```
62
113
 
63
114
  ## 0.7.0 (2018-08-12)
64
115
 
65
116
  - **Ruby 2.3+ is required**. ([@palkan][])
66
117
 
67
- Ruby 2.2 EOL was on 2018-03-31.
118
+ Ruby 2.2 EOL was on 2018-03-31.
68
119
 
69
120
  - Upgrade RubyProf integration to `ruby-prof >= 0.17`. ([@palkan][])
70
121
 
71
- Use `exclude_common_methods!` instead of the deprecated `eliminate_methods!`.
122
+ Use `exclude_common_methods!` instead of the deprecated `eliminate_methods!`.
72
123
 
73
- Add RSpec specific exclusions.
124
+ Add RSpec specific exclusions.
74
125
 
75
- Add ability to specify custom exclusions through `config.custom_exclusions`, e.g.:
126
+ Add ability to specify custom exclusions through `config.custom_exclusions`, e.g.:
76
127
 
77
- ```ruby
78
- TestProf::RubyProf.configure do |config|
79
- config.custom_exclusions = {User => %i[save save!]}
80
- end
81
- ```
128
+ ```ruby
129
+ TestProf::RubyProf.configure do |config|
130
+ config.custom_exclusions = {User => %i[save save!]}
131
+ end
132
+ ```
82
133
 
83
134
  ## 0.6.0 (2018-06-29)
84
135
 
@@ -86,25 +137,24 @@ end
86
137
 
87
138
  - Add `EventProf.monitor` to instrument arbitrary methods. ([@palkan][])
88
139
 
89
- Add custom instrumetation easily:
140
+ Add custom instrumetation easily:
90
141
 
91
- ```ruby
92
- class Work
93
- def do
94
- # ...
142
+ ```ruby
143
+ class Work
144
+ def do
145
+ # ...
146
+ end
95
147
  end
96
- end
97
148
 
98
- # Instrument Work#do calls with "my.work" event
99
- TestProf::EventProf.monitor(Work, "my.work", :do)
100
- ```
149
+ # Instrument Work#do calls with "my.work" event
150
+ TestProf::EventProf.monitor(Work, "my.work", :do)
151
+ ```
101
152
 
102
153
  [📝 Docs](https://test-prof.evilmartians.io/#/event_prof?id=profile-arbitrary-methods)
103
154
 
104
155
  - Adapterize `before_all`. ([@palkan][])
105
156
 
106
- Now it's possible to write your own adapter for `before_all` to manage
107
- transactions.
157
+ Now it's possible to write your own adapter for `before_all` to manage transactions.
108
158
 
109
159
  [📝 Docs](https://test-prof.evilmartians.io/#/before_all?id=database-adapters)
110
160
 
@@ -116,32 +166,32 @@ transactions.
116
166
 
117
167
  - Show top `let` declarations per example group in RSpecDissect profiler. ([@palkan][])
118
168
 
119
- The output now includes the following information:
169
+ The output now includes the following information:
120
170
 
121
- ```
122
- Top 5 slowest suites (by `let` time):
171
+ ```
172
+ Top 5 slowest suites (by `let` time):
123
173
 
124
- FunnelsController (./spec/controllers/funnels_controller_spec.rb:3) – 00:38.532 of 00:43.649 (133)
125
- ↳ user – 3
126
- ↳ funnel – 2
127
- ApplicantsController (./spec/controllers/applicants_controller_spec.rb:3) – 00:33.252 of 00:41.407 (222)
128
- ↳ user – 10
129
- ↳ funnel – 5
130
- ```
174
+ FunnelsController (./spec/controllers/funnels_controller_spec.rb:3) – 00:38.532 of 00:43.649 (133)
175
+ ↳ user – 3
176
+ ↳ funnel – 2
177
+ ApplicantsController (./spec/controllers/applicants_controller_spec.rb:3) – 00:33.252 of 00:41.407 (222)
178
+ ↳ user – 10
179
+ ↳ funnel – 5
180
+ ```
131
181
 
132
- Enabled by default. Disable it with:
182
+ Enabled by default. Disable it with:
133
183
 
134
- ```ruby
135
- TestProf::RSpecDissect.configure do |config|
136
- config.let_stats_enabled = false
137
- end
138
- ```
184
+ ```ruby
185
+ TestProf::RSpecDissect.configure do |config|
186
+ config.let_stats_enabled = false
187
+ end
188
+ ```
139
189
 
140
190
  - [Fix [#80](https://github.com/palkan/test-prof/issues/80)] Added ability to preserve traits. ([@Vasfed][])
141
191
 
142
- Disabled by default for compatibility. Enable globally by `FactoryDefault.preserve_traits = true` or for single `create_default`: `create_default(:user, preserve_traits: true)`
192
+ Disabled by default for compatibility. Enable globally by `FactoryDefault.preserve_traits = true` or for single `create_default`: `create_default(:user, preserve_traits: true)`
143
193
 
144
- When enabled - default object will be used only when there's no [traits](https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#traits) in association.
194
+ When enabled - default object will be used only when there's no [traits](https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#traits) in association.
145
195
 
146
196
  - Add ability to run only `let` or `before` profiler with RSpecDissect. ([@palkan][])
147
197
 
@@ -151,8 +201,8 @@ When enabled - default object will be used only when there's no [traits](https:/
151
201
 
152
202
  - [Fix [#75](https://github.com/palkan/test-prof/issues/75)] Fix `RSpec/Aggregate` failures with non-regular examples. ([@palkan][])
153
203
 
154
- Do not take into account `xit`, `pending`, `its`, etc. examples,
155
- only consider regular `it`, `specify`, `scenario`, `example`.
204
+ Do not take into account `xit`, `pending`, `its`, etc. examples,
205
+ only consider regular `it`, `specify`, `scenario`, `example`.
156
206
 
157
207
  ## 0.5.0 (2018-04-25)
158
208
 
@@ -160,78 +210,78 @@ only consider regular `it`, `specify`, `scenario`, `example`.
160
210
 
161
211
  - Add events support to TagProf. ([@palkan][])
162
212
 
163
- Example usage:
213
+ Example usage:
164
214
 
165
- ```sh
166
- TAG_PROF=type TAG_PROF_EVENT=sql.active_record rspec
167
- ```
215
+ ```sh
216
+ TAG_PROF=type TAG_PROF_EVENT=sql.active_record rspec
217
+ ```
168
218
 
169
- [📝 Docs](https://test-prof.evilmartians.io/#/tag_prof?id=profiling-events)
219
+ [📝 Docs](https://test-prof.evilmartians.io/#/tag_prof?id=profiling-events)
170
220
 
171
221
  - Add logging helpers for Rails. ([@palkan][])
172
222
 
173
- Enalbe verbose logging globally:
223
+ Enable verbose logging globally:
174
224
 
175
- ```sh
176
- LOG=all rspec
177
- ```
225
+ ```sh
226
+ LOG=all rspec
227
+ ```
178
228
 
179
- Or per example (group):
229
+ Or per example (group):
180
230
 
181
- ```ruby
182
- it "does smth weird", :log do
183
- # ...
184
- end
185
- ```
231
+ ```ruby
232
+ it "does smth weird", :log do
233
+ # ...
234
+ end
235
+ ```
186
236
 
187
- [📝 Docs](https://test-prof.evilmartians.io/#/logging)
237
+ [📝 Docs](https://test-prof.evilmartians.io/#/logging)
188
238
 
189
239
  - Add HTML report for `TagProf`. ([@palkan][])
190
240
 
191
- Generate HTML report by setting `TAG_PROF_FORMAT` to `html`.
241
+ Generate HTML report by setting `TAG_PROF_FORMAT` to `html`.
192
242
 
193
243
  - Add ability to track multiple events at the same time with `EventProf`. ([@palkan][])
194
244
 
195
245
  - Add `AnyFixture` DSL. ([@palkan][])
196
246
 
197
- Example:
247
+ Example:
198
248
 
199
- ```ruby
200
- # Enable DSL
201
- using TestProf::AnyFixture::DSL
249
+ ```ruby
250
+ # Enable DSL
251
+ using TestProf::AnyFixture::DSL
202
252
 
203
- # and then you can use `fixture` method (which is just an alias for `TestProf::AnyFixture.register`)
204
- before(:all) { fixture(:account) }
253
+ # and then you can use `fixture` method (which is just an alias for `TestProf::AnyFixture.register`)
254
+ before(:all) { fixture(:account) }
205
255
 
206
- # You can also use it to fetch the record (instead of storing it in instance variable)
207
- let(:account) { fixture(:account) }
208
- ```
256
+ # You can also use it to fetch the record (instead of storing it in instance variable)
257
+ let(:account) { fixture(:account) }
258
+ ```
209
259
 
210
- [📝 Docs](https://test-prof.evilmartians.io/#/any_fixture?id=dsl)
260
+ [📝 Docs](https://test-prof.evilmartians.io/#/any_fixture?id=dsl)
211
261
 
212
262
  - Add `AnyFixture` usage report. ([@palkan][])
213
263
 
214
- Enable `AnyFixture` usage reporting with `ANYFIXTURE_REPORTING=1` or with:
264
+ Enable `AnyFixture` usage reporting with `ANYFIXTURE_REPORTING=1` or with:
215
265
 
216
- ```ruby
217
- TestProf::AnyFixture.reporting_enabled = true
218
- ```
266
+ ```ruby
267
+ TestProf::AnyFixture.reporting_enabled = true
268
+ ```
219
269
 
220
- [📝 Docs](https://test-prof.evilmartians.io/#/any_fixture?id=usage-report)
270
+ [📝 Docs](https://test-prof.evilmartians.io/#/any_fixture?id=usage-report)
221
271
 
222
272
  - Add `ActiveRecordSharedConnection` recipe. ([@palkan][])
223
273
 
224
- Force ActiveRecord to use the same connection between threads (to avoid database cleaning in browser tests).
274
+ Force ActiveRecord to use the same connection between threads (to avoid database cleaning in browser tests).
225
275
 
226
- [📝 Docs](https://test-prof.evilmartians.io/#/active_record_shared_connection)
276
+ [📝 Docs](https://test-prof.evilmartians.io/#/active_record_shared_connection)
227
277
 
228
278
  - [#70](https://github.com/palkan/test-prof/pull/70) Add `FactoryAllStub` recipe. ([@palkan][])
229
279
 
230
- [📝 Docs](https://test-prof.evilmartians.io/#/factory_all_stub)
280
+ [📝 Docs](https://test-prof.evilmartians.io/#/factory_all_stub)
231
281
 
232
282
  - Add `ActiveRecordRefind` refinement. ([@palkan][])
233
283
 
234
- [📝 Docs](https://test-prof.evilmartians.io/#/any_fixture?id=activerecordrefind)
284
+ [📝 Docs](https://test-prof.evilmartians.io/#/any_fixture?id=activerecordrefind)
235
285
 
236
286
  ### Fixes & Improvements
237
287
 
@@ -295,15 +345,15 @@ Force ActiveRecord to use the same connection between threads (to avoid database
295
345
 
296
346
  - [#44](https://github.com/palkan/test-prof/pull/44) Support older versions of RSpec. ([@palkan][])
297
347
 
298
- Support RSpec 3.1.0+ in general.
348
+ Support RSpec 3.1.0+ in general.
299
349
 
300
- `let_it_be` supports only RSpec 3.3.0+.
350
+ `let_it_be` supports only RSpec 3.3.0+.
301
351
 
302
- RSpecDissect `let` tracking supports only RSpec 3.3.0+.
352
+ RSpecDissect `let` tracking supports only RSpec 3.3.0+.
303
353
 
304
354
  - [#38](https://github.com/palkan/test-prof/pull/38) Factory Doctor Minitest integration. ([@IDolgirev][])
305
355
 
306
- It is possible now to use Factory Doctor with Minitest
356
+ It is possible now to use Factory Doctor with Minitest
307
357
 
308
358
  ## 0.4.0 (2017-10-03)
309
359
 
@@ -311,7 +361,7 @@ It is possible now to use Factory Doctor with Minitest
311
361
 
312
362
  - [#29](https://github.com/palkan/test-prof/pull/29) EventProf Minitest integration. ([@IDolgirev][])
313
363
 
314
- It is possible now to use Event Prof with Minitest
364
+ It is possible now to use Event Prof with Minitest
315
365
 
316
366
  - [#30](https://github.com/palkan/test-prof/pull/30) Fabrication support for FactoryProf. ([@Shkrt][])
317
367
 
@@ -323,26 +373,25 @@ FactoryProf now also accounts objects created by Fabrication gem (in addition to
323
373
 
324
374
  - Combine RSpecStamp with FactoryDoctor. ([@palkan][])
325
375
 
326
- Automatically mark _bad_ examples with custom tags.
376
+ Automatically mark _bad_ examples with custom tags.
327
377
 
328
378
  - [#17](https://github.com/palkan/test-prof/pull/17) Combine RSpecStamp with EventProf and RSpecDissect. ([@palkan][])
329
379
 
330
- It is possible now to automatically mark _slow_ examples and groups with custom tags. For example:
380
+ It is possible now to automatically mark _slow_ examples and groups with custom tags. For example:
331
381
 
332
- ```sh
333
- EVENT_PROF="sql.active_record" EVENT_PROF_STAMP="slow:sql" rspec ...
334
- ```
382
+ ```sh
383
+ $ EVENT_PROF="sql.active_record" EVENT_PROF_STAMP="slow:sql" rspec ...
384
+ ```
335
385
 
336
- After running the command above the top 5 slowest example groups would be marked with `slow: :sql` tag.
386
+ After running the command above the top 5 slowest example groups would be marked with `slow: :sql` tag.
337
387
 
338
388
  - [#14](https://github.com/palkan/test-prof/pull/14) RSpecDissect profiler. ([@palkan][])
339
389
 
340
- RSpecDissect tracks how much time do you spend in `before` hooks
341
- and memoization helpers (i.e. `let`) in your tests.
390
+ RSpecDissect tracks how much time do you spend in `before` hooks and memoization helpers (i.e. `let`) in your tests.
342
391
 
343
392
  - [#13](https://github.com/palkan/test-prof/pull/13) RSpec `let_it_be` method. ([@palkan][])
344
393
 
345
- Just like `let`, but persist the result for the whole group (i.e. `let` + `before_all`).
394
+ Just like `let`, but persist the result for the whole group (i.e. `let` + `before_all`).
346
395
 
347
396
  ### Improvements:
348
397
 
@@ -362,7 +411,7 @@ Just like `let`, but persist the result for the whole group (i.e. `let` + `befor
362
411
 
363
412
  - EventProf: Fix regression bug with examples profiling. ([@palkan][])
364
413
 
365
- There was a bug when an event occurs before the example has started (e.g. in `before(:context)` hook).
414
+ There was a bug when an event occurs before the example has started (e.g. in `before(:context)` hook).
366
415
 
367
416
  ## 0.2.3 (2017-08-28)
368
417
 
@@ -372,8 +421,7 @@ There was a bug when an event occurs before the example has started (e.g. in `be
372
421
 
373
422
  - Fix time calculation when Time class is monkey-patched. ([@palkan][])
374
423
 
375
- Add `TestProf.now` method which is just a copy of original `Time.now` and
376
- use it everywhere.
424
+ Add `TestProf.now` method which is just a copy of original `Time.now` and use it everywhere.
377
425
 
378
426
  Fixes [#10](https://github.com/palkan/test-prof/issues/10).
379
427
 
@@ -381,17 +429,17 @@ Fixes [#10](https://github.com/palkan/test-prof/issues/10).
381
429
 
382
430
  - Detect `RSpec` by checking the presence of `RSpec::Core`. ([@palkan][])
383
431
 
384
- Fixes [#8](https://github.com/palkan/test-prof/issues/8).
432
+ Fixes [#8](https://github.com/palkan/test-prof/issues/8).
385
433
 
386
434
  ## 0.2.0 (2017-08-18)
387
435
 
388
436
  - Ensure output directory exists. ([@danielwestendorf][])
389
437
 
390
- **Change default output dir** to "tmp/test_prof".
438
+ **Change default output dir** to "tmp/test_prof".
391
439
 
392
- Rename `#artefact_path` to `#artifact_path` to be more US-like
440
+ Rename `#artefact_path` to `#artifact_path` to be more US-like
393
441
 
394
- Ensure output dir exists in `#artifact_path` method.
442
+ Ensure output dir exists in `#artifact_path` method.
395
443
 
396
444
  - FactoryDoctor: print success message when no bad examples found. ([@palkan][])
397
445
 
@@ -414,3 +462,4 @@ Ensure output dir exists in `#artifact_path` method.
414
462
  [@szemek]: https://github.com/szemek
415
463
  [@mkldon]: https://github.com/mkldon
416
464
  [@dmagro]: https://github.com/dmagro
465
+ [@danielwaterworth]: https://github.com/danielwaterworth
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017 palkan
3
+ Copyright (c) 2017-2019 palkan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal