rspec-core 3.0.4 → 3.12.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/.document +1 -1
  4. data/.yardopts +2 -1
  5. data/Changelog.md +888 -2
  6. data/{License.txt → LICENSE.md} +6 -5
  7. data/README.md +165 -24
  8. data/lib/rspec/autorun.rb +1 -0
  9. data/lib/rspec/core/backtrace_formatter.rb +19 -20
  10. data/lib/rspec/core/bisect/coordinator.rb +62 -0
  11. data/lib/rspec/core/bisect/example_minimizer.rb +173 -0
  12. data/lib/rspec/core/bisect/fork_runner.rb +138 -0
  13. data/lib/rspec/core/bisect/server.rb +61 -0
  14. data/lib/rspec/core/bisect/shell_command.rb +126 -0
  15. data/lib/rspec/core/bisect/shell_runner.rb +73 -0
  16. data/lib/rspec/core/bisect/utilities.rb +69 -0
  17. data/lib/rspec/core/configuration.rb +1287 -246
  18. data/lib/rspec/core/configuration_options.rb +95 -35
  19. data/lib/rspec/core/did_you_mean.rb +46 -0
  20. data/lib/rspec/core/drb.rb +21 -12
  21. data/lib/rspec/core/dsl.rb +10 -6
  22. data/lib/rspec/core/example.rb +305 -113
  23. data/lib/rspec/core/example_group.rb +431 -223
  24. data/lib/rspec/core/example_status_persister.rb +235 -0
  25. data/lib/rspec/core/filter_manager.rb +86 -115
  26. data/lib/rspec/core/flat_map.rb +6 -4
  27. data/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
  28. data/lib/rspec/core/formatters/base_formatter.rb +14 -116
  29. data/lib/rspec/core/formatters/base_text_formatter.rb +18 -21
  30. data/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
  31. data/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
  32. data/lib/rspec/core/formatters/console_codes.rb +29 -18
  33. data/lib/rspec/core/formatters/deprecation_formatter.rb +16 -16
  34. data/lib/rspec/core/formatters/documentation_formatter.rb +49 -16
  35. data/lib/rspec/core/formatters/exception_presenter.rb +525 -0
  36. data/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
  37. data/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
  38. data/lib/rspec/core/formatters/helpers.rb +45 -15
  39. data/lib/rspec/core/formatters/html_formatter.rb +33 -28
  40. data/lib/rspec/core/formatters/html_printer.rb +30 -20
  41. data/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
  42. data/lib/rspec/core/formatters/json_formatter.rb +18 -9
  43. data/lib/rspec/core/formatters/profile_formatter.rb +10 -9
  44. data/lib/rspec/core/formatters/progress_formatter.rb +5 -4
  45. data/lib/rspec/core/formatters/protocol.rb +182 -0
  46. data/lib/rspec/core/formatters/snippet_extractor.rb +113 -82
  47. data/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
  48. data/lib/rspec/core/formatters.rb +81 -41
  49. data/lib/rspec/core/hooks.rb +314 -244
  50. data/lib/rspec/core/invocations.rb +87 -0
  51. data/lib/rspec/core/memoized_helpers.rb +161 -51
  52. data/lib/rspec/core/metadata.rb +132 -61
  53. data/lib/rspec/core/metadata_filter.rb +224 -64
  54. data/lib/rspec/core/minitest_assertions_adapter.rb +6 -3
  55. data/lib/rspec/core/mocking_adapters/flexmock.rb +4 -2
  56. data/lib/rspec/core/mocking_adapters/mocha.rb +11 -9
  57. data/lib/rspec/core/mocking_adapters/null.rb +2 -0
  58. data/lib/rspec/core/mocking_adapters/rr.rb +3 -1
  59. data/lib/rspec/core/mocking_adapters/rspec.rb +3 -1
  60. data/lib/rspec/core/notifications.rb +192 -206
  61. data/lib/rspec/core/option_parser.rb +174 -69
  62. data/lib/rspec/core/ordering.rb +48 -35
  63. data/lib/rspec/core/output_wrapper.rb +29 -0
  64. data/lib/rspec/core/pending.rb +25 -33
  65. data/lib/rspec/core/profiler.rb +34 -0
  66. data/lib/rspec/core/project_initializer/.rspec +0 -2
  67. data/lib/rspec/core/project_initializer/spec/spec_helper.rb +59 -39
  68. data/lib/rspec/core/project_initializer.rb +5 -3
  69. data/lib/rspec/core/rake_task.rb +99 -55
  70. data/lib/rspec/core/reporter.rb +128 -15
  71. data/lib/rspec/core/ruby_project.rb +14 -6
  72. data/lib/rspec/core/runner.rb +96 -45
  73. data/lib/rspec/core/sandbox.rb +37 -0
  74. data/lib/rspec/core/set.rb +54 -0
  75. data/lib/rspec/core/shared_example_group.rb +133 -43
  76. data/lib/rspec/core/shell_escape.rb +49 -0
  77. data/lib/rspec/core/test_unit_assertions_adapter.rb +4 -4
  78. data/lib/rspec/core/version.rb +1 -1
  79. data/lib/rspec/core/warnings.rb +6 -6
  80. data/lib/rspec/core/world.rb +172 -68
  81. data/lib/rspec/core.rb +66 -21
  82. data.tar.gz.sig +0 -0
  83. metadata +93 -69
  84. metadata.gz.sig +0 -0
  85. data/lib/rspec/core/backport_random.rb +0 -336
data/Changelog.md CHANGED
@@ -1,3 +1,877 @@
1
+ ### Development
2
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.12.2...3-12-maintenance)
3
+
4
+ ### 3.12.2 / 2023-04-18
5
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.12.1...v3.12.2)
6
+
7
+ Bug fixes:
8
+
9
+ * Remove link to outdated documentation in generated output. (Jon Rowe, #3035)
10
+
11
+ ### 3.12.1 / 2023-02-03
12
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.12.0...v3.12.1)
13
+
14
+ Bug fixes:
15
+
16
+ * Prevent multiple calls to `extra_failure_lines` from adding additional whitespace
17
+ around them when the lines already contain whitespace. (Jon Rowe, #3006)
18
+
19
+ ### 3.12.0 / 2022-10-26
20
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.11.0...v3.12.0)
21
+
22
+ * No changes, released to support other gems.
23
+
24
+ ### 3.11.0 / 2022-02-09
25
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.10.2...v3.11.0)
26
+
27
+ Enhancements:
28
+
29
+ * Improve pluralisation of words ending with `s` (like process). (Joshua Pinter, #2779)
30
+ * Add ordering by file modification time (most recent first). (Matheus Richard, #2778)
31
+ * Add `to_s` to reserved names for #let and #subject. (Nick Flückiger, #2886)
32
+ * Introduce `RSpec.current_scope` to expose the current scope in which
33
+ RSpec is executing. e.g. `:before_example_hook`, `:example` etc. (@odinhb, #2895)
34
+ * Add named bold colours as options for custom colours. (#2913, #2914)
35
+ * Warn when (but not prevent) a `SystemExit` occurs. (Jared Beck, #2926)
36
+
37
+ ### 3.10.2 / 2022-01-27
38
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.10.1...v3.10.2)
39
+
40
+ Bug fixes:
41
+
42
+ * Ensure bisect communication uses consistent encoding. (Mike Jarema, #2852)
43
+ * Fix exception presenter when the root cause exception has nil backtrace.
44
+ (Zinovyev Ivan, #2903)
45
+ * Fix `inspect` output of `RSpec::Core::Example::Procsy` to namespace correctly.
46
+ (Keiko Kaneko, #2915)
47
+ * Ensure formatters not exposing `#output` will not crash duplicate check.
48
+ (@niceking, #2916)
49
+
50
+ ### 3.10.1 / 2020-12-27
51
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.10.0...v3.10.1)
52
+
53
+ Bug fixes:
54
+
55
+ * RSpec warning output was missing deprecations from Ruby, these are now included.
56
+ (Jon Rowe, #2811)
57
+
58
+ ### 3.10.0 / 2020-10-30
59
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.9.3...v3.10.0)
60
+
61
+ Enhancements:
62
+
63
+ * Memoize `RSpec::Core::Formatters::ExceptionPresenter#exception_lines` to improve performance
64
+ with slow exception messages. (Maxime Lapointe, #2743)
65
+ * Add configuration for an error exit code (to disambiguate errored builds from failed builds
66
+ by exit status). (Dana Sherson, #2749)
67
+
68
+ ### 3.9.3 / 2020-09-30
69
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.9.2...v3.9.3)
70
+
71
+ Bug Fixes:
72
+
73
+ * Declare `ruby2_keywords` on `method_missing` for other gems. (Jon Rowe, #2731)
74
+ * Ensure custom error codes are returned from bisect runs. (Jon Rowe, #2732)
75
+ * Ensure `RSpec::Core::Configuration` predicate config methods return booleans.
76
+ (Marc-André Lafortune, #2736)
77
+ * Prevent `rspec --bisect` from generating zombie processes while executing
78
+ bisect runs. (Benoit Tigeot, Jon Rowe, #2739)
79
+ * Predicates for pending examples, (in `RSpec::Core::Example`, `#pending?`, `#skipped?` and
80
+ `#pending_fixed?`) now return boolean values rather than truthy values.
81
+ (Marc-André Lafortune, #2756, #2758)
82
+ * Exceptions which have a message which cannot be cast to a string will no longer
83
+ cause a crash. (Jon Rowe, #2761)
84
+
85
+ ### 3.9.2 / 2020-05-02
86
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.9.1...v3.9.2)
87
+
88
+ Bug Fixes:
89
+
90
+ * Emit a warning when `around` hook is used with `:context` scope
91
+ (Phil Pirozhkov, #2687)
92
+ * Prevent invalid implementations of `Exception#cause` from being treated as a
93
+ valid cause (and causing strange errors) in `RSpec::Core::Formatters::ExceptionPresenter`.
94
+ (Jon Rowe, #2703)
95
+ * Correctly detect patterns when `rspec_opts` is an array in `RSpec::Core::RakeTask`.
96
+ (Marc-André Lafortune, #2704)
97
+ * Make `RSpec.clear_examples` reset example counts for example groups. This fixes
98
+ an issue with re-running specs not matching ids. (Agis Anastasopoulos, #2723)
99
+
100
+ ### 3.9.1 / 2019-12-28
101
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.9.0...v3.9.1)
102
+
103
+ Bug Fixes:
104
+
105
+ * Prevent bisect command from blocking when number of specs exceeds file
106
+ descriptor limit on OSX or Linux. (Benoit Tigeot, #2669)
107
+ * Prevent warnings being issued on Ruby 2.7.0. (Jon Rowe, #2680)
108
+
109
+ ### 3.9.0 / 2019-10-07
110
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.2...v3.9.0)
111
+
112
+ Enhancements:
113
+
114
+ * Improve the handling of errors during loading support files, if a file
115
+ errors before loading specs, RSpec will now skip loading the specs.
116
+ (David Rodríguez, #2568)
117
+ * Add support for --example-matches to run examples by regular expression.
118
+ (Sam Joseph, Matt Rider, @okothkongo1, #2586)
119
+ * Add `did_you_mean` suggestions for file names encountering a `LoadError`
120
+ outside of examples. (@obromios, #2601)
121
+ * Add a minimalist quick fix style formatter, only outputs failures as
122
+ `file:line:message`. (Romain Tartière, #2614)
123
+ * Convert string number values to integer when used for `RSpec::Configuration#fail_fast`
124
+ (Viktor Fonic, #2634)
125
+ * Issue warning when invalid values are used for `RSpec::Configuration#fail_fast`
126
+ (Viktor Fonic, #2634)
127
+ * Add support for running the Rake task in a clean environment.
128
+ (Jon Rowe, #2632)
129
+ * Indent messages by there example group / example in the documentation formatter.
130
+ (Samuel Williams, #2649)
131
+
132
+ ### 3.8.2 / 2019-06-29
133
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.1...v3.8.2)
134
+
135
+ Bug Fixes:
136
+
137
+ * Fix `config.define_derived_metadata` so that cascades are not triggered
138
+ until metadata has been assigned to the example or example group
139
+ (Myron Marston, #2635).
140
+
141
+ ### 3.8.1 / 2019-06-13
142
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.0...v3.8.1)
143
+
144
+ Bug Fixes:
145
+
146
+ * Handle RSpec description(s) with japanese chars in CP932 encoded files.
147
+ (Benoit Tigeot, #2575)
148
+ * When defining `let` methods that overwrite an existing method, prevent
149
+ a warning being issued by removing the old definition. (Jon Rowe, #2593)
150
+ * Prevent warning on Ruby 2.6.0-rc1 (Keiji Yoshimi, #2582)
151
+ * Fix `config.define_derived_metadata` so that it supports cascades.
152
+ (Myron Marston, #2630).
153
+
154
+ ### 3.8.0 / 2018-08-04
155
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.7.1...v3.8.0)
156
+
157
+ Enhancements:
158
+
159
+ * Improve shell escaping used by `RSpec::Core::RakeTask` and `--bisect` so
160
+ that it works on `Pathname` objects. (Andrew Vit, #2479)
161
+ * Nicely format errors encountered while loading files specified
162
+ by `--require` option. (Myron Marston, #2504)
163
+ * Significantly improve the performance of `--bisect` on platforms that
164
+ support forking by replacing the shell-based runner with one that uses
165
+ forking so that RSpec and the application environment can be booted only
166
+ once, instead of once per spec run. (Myron Marston, #2511)
167
+ * Provide a configuration API to pick which bisect runner is used for
168
+ `--bisect`. Pick a runner via `config.bisect_runner = :shell` or
169
+ `config.bisect_runner = :fork` in a file loaded by a `--require`
170
+ option passed at the command line or set in `.rspec`. (Myron Marston, #2511)
171
+ * Support the [XDG Base Directory
172
+ Specification](https://specifications.freedesktop.org/basedir-spec/latest/)
173
+ for the global options file. `~/.rspec` is still supported when no
174
+ options file is found in `$XDG_CONFIG_HOME/rspec/options` (Magnus Bergmark, #2538)
175
+ * Extract `RSpec.world.prepare_example_filtering` that sets up the
176
+ example filtering for custom RSpec runners. (Oleg Pudeyev, #2552)
177
+
178
+ Bug Fixes:
179
+
180
+ * Prevent an `ArgumentError` when truncating backtraces with two identical
181
+ backtraces. (Systho, #2515, Benoit Tigeot, #2539)
182
+
183
+ ### 3.7.1 / 2018-01-02
184
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.7.0...v3.7.1)
185
+
186
+ Bug Fixes:
187
+
188
+ * Work around duplicate config hook regression introduced
189
+ by Ruby 2.5's lazy proc allocation. (Myron Marston, #2497)
190
+
191
+ ### 3.7.0 / 2017-10-17
192
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.6.0...v3.7.0)
193
+
194
+ Enhancements:
195
+
196
+ * Add `-n` alias for `--next-failure`. (Ian Ker-Seymer, #2434)
197
+ * Improve compatibility with `--enable-frozen-string-literal` option
198
+ on Ruby 2.3+. (Pat Allan, #2425, #2427, #2437)
199
+ * Do not run `:context` hooks for example groups that have been skipped.
200
+ (Devon Estes, #2442)
201
+ * Add `errors_outside_of_examples_count` to the JSON formatter.
202
+ (Takeshi Arabiki, #2448)
203
+
204
+ Bug Fixes:
205
+
206
+ * Improve compatibility with frozen string literal flag. (#2425, Pat Allan)
207
+
208
+ ### 3.6.0 / 2017-05-04
209
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.6.0.beta2...v3.6.0)
210
+
211
+ Enhancements:
212
+
213
+ * Add seed information to JSON formatter output. (#2388, Mitsutaka Mimura)
214
+ * Include example id in the JSON formatter output. (#2369, Xavier Shay)
215
+ * Respect changes to `config.output_stream` after formatters have been
216
+ setup. (#2401, #2419, Ilya Lavrov)
217
+
218
+ Bug Fixes:
219
+
220
+ * Delay formatter loading until the last minute to allow accessing the reporter
221
+ without triggering formatter setup. (Jon Rowe, #2243)
222
+ * Ensure context hook failures running before an example can access the
223
+ reporter. (Jon Jensen, #2387)
224
+ * Multiple fixes to allow using the runner multiple times within the same
225
+ process: `RSpec.clear_examples` resets the formatter and no longer clears
226
+ shared examples, and streams can be used across multiple runs rather than
227
+ being closed after the first. (#2368, Xavier Shay)
228
+ * Prevent unexpected `example_group_finished` notifications causing an error.
229
+ (#2396, VTJamie)
230
+ * Fix bugs where `config.when_first_matching_example_defined` hooks would fire
231
+ multiple times in some cases. (Yuji Nakayama, #2400)
232
+ * Default `last_run_status` to "unknown" when the `status` field in the
233
+ persistence file contains an unrecognized value. (#2360, matrinox)
234
+ * Prevent `let` from defining an `initialize` method. (#2414, Jon Rowe)
235
+
236
+ ### 3.6.0.beta2 / 2016-12-12
237
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.6.0.beta1...v3.6.0.beta2)
238
+
239
+ Enhancements:
240
+
241
+ * Include count of errors occurring outside examples in default summaries.
242
+ (#2351, Jon Rowe)
243
+ * Warn when including shared example groups recursively. (#2356, Jon Rowe)
244
+ * Improve failure snippet syntax highlighting with CodeRay to highlight
245
+ RSpec "keywords" like `expect`. (#2358, Myron Marston)
246
+
247
+ ### 3.6.0.beta1 / 2016-10-09
248
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.4...v3.6.0.beta1)
249
+
250
+ Enhancements:
251
+
252
+ * Warn when duplicate shared examples definitions are loaded due to being
253
+ defined in files matching the spec pattern (e.g. `_spec.rb`) (#2278, Devon Estes)
254
+ * Improve metadata filtering so that it can match against any object
255
+ that implements `===` instead of treating regular expressions as
256
+ special. (Myron Marston, #2294)
257
+ * Improve `rspec -v` so that it prints out the versions of each part of
258
+ RSpec to prevent confusion. (Myron Marston, #2304)
259
+ * Add `config.fail_if_no_examples` option which causes RSpec to fail if
260
+ no examples are found. (Ewa Czechowska, #2302)
261
+ * Nicely format errors encountered while loading spec files.
262
+ (Myron Marston, #2323)
263
+ * Improve the API for enabling and disabling color output (Josh
264
+ Justice, #2321):
265
+ * Automatically enable color if the output is a TTY, since color is
266
+ nearly always desirable if the output can handle it.
267
+ * Introduce new CLI flag to force color on (`--force-color`), even
268
+ if the output is not a TTY. `--no-color` continues to work as well.
269
+ * Introduce `config.color_mode` for configuring the color from Ruby.
270
+ `:automatic` is the default and will produce color if the output is
271
+ a TTY. `:on` forces it on and `:off` forces it off.
272
+
273
+ ### 3.5.4 / 2016-09-30
274
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.3...v3.5.4)
275
+
276
+ Bug Fixes:
277
+
278
+ * Remove accumulated `ExampleGroup` constants when reseting RSpec,
279
+ preventing a memory leak. (TravisSpangle, #2328)
280
+
281
+ ### 3.5.3 / 2016-09-02
282
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.2...v3.5.3)
283
+
284
+ Bug Fixes:
285
+
286
+ * When applying shared group metadata to a host group, overwrite
287
+ conflicting keys if the value in the host group was inherited from
288
+ a parent group instead of being specified at that level.
289
+ (Myron Marston, #2307)
290
+ * Handle errors in `:suite` hooks and provide the same nicely formatted
291
+ output as errors that happen in examples. (Myron Marston, #2316)
292
+ * Set the exit status to non-zero when an error occurs in an
293
+ `after(:context)` hook. (Myron Marston, #2320)
294
+
295
+ ### 3.5.2 / 2016-07-28
296
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.1...v3.5.2)
297
+
298
+ Bug Fixes:
299
+
300
+ * Wait to report `example_finished` until the example's `execution_result`
301
+ has been completely filled in. (Myron Marston, #2291)
302
+ * Make sure example block is still available when using `duplicate_with`
303
+ to clone examples. (bootstraponline, #2298)
304
+ * Don't include the default `--pattern` in the Rake task when
305
+ `rspec_opts` specifies its own. (Jon Rowe, #2305)
306
+
307
+ ### 3.5.1 / 2016-07-06
308
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.0...v3.5.1)
309
+
310
+ Bug Fixes:
311
+
312
+ * Ensure that config hooks that are added to existing example groups are
313
+ added only once. (Eugene Kenny, #2280)
314
+
315
+ ### 3.5.0 / 2016-07-01
316
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.0.beta4...v3.5.0)
317
+
318
+ Enhancements:
319
+
320
+ * Include any `SPEC_OPTS` in reproduction command printed at the end of
321
+ a bisect run. (Simon Coffey, #2274)
322
+
323
+ Bug Fixes:
324
+
325
+ * Handle `--bisect` in `SPEC_OPTS` environment variable correctly so as
326
+ to avoid infinite recursion. (Simon Coffey, #2271)
327
+
328
+ ### 3.5.0.beta4 / 2016-06-05
329
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.0.beta3...v3.5.0.beta4)
330
+
331
+ Enhancements:
332
+
333
+ * Filter out bundler stackframes from backtraces by default, since
334
+ Bundler 1.12 now includes its own frames in stack traces produced
335
+ by using `bundle exec`. (Myron Marston, #2240)
336
+ * HTML Formatter uses exception presenter to get failure message
337
+ for consistency with other formatters. (@mrageh, #2222)
338
+ * Load spec files in the order of the directories or files passed
339
+ at the command line, making it easy to make some specs run before
340
+ others in a one-off manner. For example, `rspec spec/unit
341
+ spec/acceptance --order defined` will run unit specs before acceptance
342
+ specs. (Myron Marston, #2253)
343
+ * Add new `config.include_context` API for configuring global or
344
+ filtered inclusion of shared contexts in example groups.
345
+ (Myron Marston, #2256)
346
+ * Add new `config.shared_context_metadata_behavior = :apply_to_host_groups`
347
+ option, which causes shared context metadata to be inherited by the
348
+ metadata hash of all host groups and examples instead of configuring
349
+ implicit auto-inclusion based on the passed metadata. (Myron Marston, #2256)
350
+
351
+ Bug Fixes:
352
+
353
+ * Fix `--bisect` so it works on large spec suites that were previously triggering
354
+ "Argument list too long errors" due to all the spec locations being passed as
355
+ CLI args. (Matt Jones, #2223).
356
+ * Fix deprecated `:example_group`-based filtering so that it properly
357
+ applies to matching example groups. (Myron Marston, #2234)
358
+ * Fix `NoMethodError` caused by Java backtraces on JRuby. (Michele Piccirillo, #2244)
359
+
360
+ ### 3.5.0.beta3 / 2016-04-02
361
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.0.beta2...v3.5.0.beta3)
362
+
363
+ Enhancements:
364
+
365
+ * Add new `config.filter_run_when_matching` API, intended to replace
366
+ the combination of `config.filter_run` and
367
+ `config.run_all_when_everything_filtered` (Myron Marston, #2206)
368
+
369
+ Bug Fixes:
370
+
371
+ * Use the encoded string logic for source extraction. (Jon Rowe, #2183)
372
+ * Fix rounding issue in duration formatting helper. (Fabersky, Jon Rowe, #2208)
373
+ * Fix failure snippet extraction so that `def-end` snippets
374
+ ending with `end`-only line can be extracted properly.
375
+ (Yuji Nakayama, #2215)
376
+
377
+ ### 3.5.0.beta2 / 2016-03-10
378
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.5.0.beta1...v3.5.0.beta2)
379
+
380
+ Enhancements:
381
+
382
+ * Remove unneeded `:execution_result` example group metadata, saving a
383
+ bit of memory. (Myron Marston, #2172)
384
+ * Apply hooks registered with `config` to previously defined groups.
385
+ (Myron Marston, #2189)
386
+ * `RSpec::Core::Configuration#reporter` is now public API under SemVer.
387
+ (Jon Rowe, #2193)
388
+ * Add new `config.when_first_matching_example_defined` hook. (Myron
389
+ Marston, #2175)
390
+
391
+ ### 3.5.0.beta1 / 2016-02-06
392
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.4...v3.5.0.beta1)
393
+
394
+ Enhancements:
395
+
396
+ * Add `RSpec::Core::ExampleGroup.currently_executing_a_context_hook?`,
397
+ primarily for use by rspec-rails. (Sam Phippen, #2131)
398
+
399
+ Bug Fixes:
400
+
401
+ * Ensure `MultipleExceptionError` does not contain a recursive reference
402
+ to itself. (Sam Phippen, #2133)
403
+
404
+ ### 3.4.4 / 2016-03-09
405
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.3...v3.4.4)
406
+
407
+ Bug Fixes:
408
+
409
+ * Fix `RSpec::Core::RakeTask` so that it works with Rake 11.
410
+ (Travis Grathwell, #2197)
411
+
412
+ ### 3.4.3 / 2016-02-19
413
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.2...v3.4.3)
414
+
415
+ Bug Fixes:
416
+
417
+ * Prevent a `TypeError` from occurring when running via the rake task when
418
+ Ruby crashes. (Patrik Wenger, #2161)
419
+ * Only consider example and group declaration lines from a specific file
420
+ when applying line number filtering, instead of considering all
421
+ declaration lines from all spec files. (Myron Marston, #2170)
422
+ * Fix failure snippet extraction so that snippets that contain `do-end` style
423
+ block and end with `end`-only line can be extracted properly.
424
+ (Yuji Nakayama, #2173)
425
+ * Prevent infinite recursion when an exception is caused by itself.
426
+ (Jon Rowe, #2128)
427
+
428
+ ### 3.4.2 / 2016-01-26
429
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.1...v3.4.2)
430
+
431
+ Bug Fixes:
432
+
433
+ * Fix `rspec --profile` when an example calls `abort` or `exit`.
434
+ (Bradley Schaefer, #2144)
435
+ * Fix `--drb` so that when no DRb server is running, it prevents
436
+ the DRb connection error from being listed as the cause of all
437
+ expectation failures. (Myron Marston, #2156)
438
+ * Fix syntax highlighter so that it works when the `coderay` gem is
439
+ installed as a rubygem but not already available on your load path
440
+ (as happens when you use bundler). (Myron Marston, #2159)
441
+
442
+ ### 3.4.1 / 2015-11-18
443
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.4.0...v3.4.1)
444
+
445
+ Bug Fixes:
446
+
447
+ * Fix backtrace formatter to handle backtraces that are `nil`.
448
+ (Myron Marston, #2118)
449
+
450
+ ### 3.4.0 / 2015-11-11
451
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.3.2...v3.4.0)
452
+
453
+ Enhancements:
454
+
455
+ * Combine multiple `--pattern` arguments making them equivalent to
456
+ `--pattern=1,2,...,n`. (Jon Rowe, #2002)
457
+ * Improve `inspect` and `to_s` output for `RSpec::Core::Example`
458
+ objects, replacing Ruby's excessively verbose output. (Gavin Miller, #1922)
459
+ * Add `silence_filter_announcements` configuration option.
460
+ (David Raffensperger, #2007)
461
+ * Add optional `example_finished` notification to the reporter protocol for
462
+ when you don't care about the example outcome. (Jon Rowe, #2013)
463
+ * Switch `--bisect` to a recursion-based bisection algorithm rather than
464
+ a permutation-based one. This better handles cases where an example
465
+ depends upon multiple other examples instead of just one and minimizes
466
+ the number of runs necessary to determine that an example set cannot be
467
+ minimized further. (Simon Coffey, #1997)
468
+ * Allow simple filters (e.g. `:symbol` key only) to be triggered by truthey
469
+ values. (Tim Mertens, #2035)
470
+ * Remove unneeded warning about need for `ansicon` on Windows when using
471
+ RSpec's `--color` option. (Ashley Engelund, #2038)
472
+ * Add option to configure RSpec to raise errors when issuing warnings.
473
+ (Jon Rowe, #2052)
474
+ * Append the root `cause` of a failure or error to the printed failure
475
+ output when a `cause` is available. (Adam Magan)
476
+ * Stop rescuing `NoMemoryError`, `SignalExcepetion`, `Interrupt` and
477
+ `SystemExit`. It is dangerous to interfere with these. (Myron Marston, #2063)
478
+ * Add `config.project_source_dirs` setting which RSpec uses to determine
479
+ if a backtrace line comes from your project source or from some
480
+ external library. It defaults to `spec`, `lib` and `app` but can be
481
+ configured differently. (Myron Marston, #2088)
482
+ * Improve failure line detection so that it looks for the failure line
483
+ in any project source directory instead of just in the spec file.
484
+ In addition, if no backtrace lines can be found from a project source
485
+ file, we fall back to displaying the source of the first backtrace
486
+ line. This should virtually eliminate the "Unable to find matching
487
+ line from backtrace" messages. (Myron Marston, #2088)
488
+ * Add support for `:extra_failure_lines` example metadata that will
489
+ be appended to the failure output. (bootstraponline, #2092).
490
+ * Add `RSpec::Core::Example#duplicate_with` to produce new examples
491
+ with cloned metadata. (bootstraponline, #2098)
492
+ * Add `RSpec::Core::Configuration#on_example_group_definition` to register
493
+ hooks to be invoked when example groups are created. (bootstraponline, #2094)
494
+ * Add `add_example` and `remove_example` to `RSpec::Core::ExampleGroup` to
495
+ allow manipulating an example groups examples. (bootstraponline, #2095)
496
+ * Display multiline failure source lines in failure output when Ripper is
497
+ available (MRI >= 1.9.2, and JRuby >= 1.7.5 && < 9.0.0.0.rc1).
498
+ (Yuji Nakayama, #2083)
499
+ * Add `max_displayed_failure_line_count` configuration option
500
+ (defaults to 10). (Yuji Nakayama, #2083)
501
+ * Enhance `fail_fast` option so it can take a number (e.g. `--fail-fast=3`)
502
+ to force the run to abort after the specified number of failures.
503
+ (Jack Scotti, #2065)
504
+ * Syntax highlight the failure snippets in text formatters when `color`
505
+ is enabled and the `coderay` gem is installed on a POSIX system.
506
+ (Myron Marston, #2109)
507
+
508
+ Bug Fixes:
509
+
510
+ * Lock `example_status_persistence_file` when reading from and writing
511
+ to it to prevent race conditions when multiple processes try to use
512
+ it. (Ben Woosley, #2029)
513
+ * Fix regression in 3.3 that caused spec file names with square brackets in
514
+ them (such as `1[]_spec.rb`) to not be loaded properly. (Myron Marston, #2041)
515
+ * Fix output encoding issue caused by ASCII literal on 1.9.3 (Jon Rowe, #2072)
516
+ * Fix requires in `rspec/core/rake_task.rb` to avoid double requires
517
+ seen by some users. (Myron Marston, #2101)
518
+
519
+ ### 3.3.2 / 2015-07-15
520
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.3.1...v3.3.2)
521
+
522
+ Bug Fixes:
523
+
524
+ * Fix formatters to handle exceptions for which `backtrace` returns `nil`.
525
+ (Myron Marston, #2023)
526
+ * Fix duplicate formatter detection so that it allows subclasses of formatters
527
+ to be added. (Sebastián Tello, #2019)
528
+
529
+ ### 3.3.1 / 2015-06-18
530
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.3.0...v3.3.1)
531
+
532
+ Bug Fixes:
533
+
534
+ * Correctly run `before(:suite)` (and friends) in the context of an example
535
+ group instance, thus making the expected RSpec environment available.
536
+ (Jon Rowe, #1986)
537
+
538
+ ### 3.3.0 / 2015-06-12
539
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.2.3...v3.3.0)
540
+
541
+ Enhancements:
542
+
543
+ * Expose the reporter used to run examples via `RSpec::Core::Example#reporter`.
544
+ (Jon Rowe, #1866)
545
+ * Make `RSpec::Core::Reporter#message` a public supported API. (Jon Rowe, #1866)
546
+ * Allow custom formatter events to be published via
547
+ `RSpec::Core::Reporter#publish(event_name, hash_of_attributes)`. (Jon Rowe, #1869)
548
+ * Remove dependency on the standard library `Set` and replace with `RSpec::Core::Set`.
549
+ (Jon Rowe, #1870)
550
+ * Assign a unique id to each example and group so that they can be
551
+ uniquely identified, even for shared examples (and similar situations)
552
+ where the location isn't unique. (Myron Marston, #1884)
553
+ * Use the example id in the rerun command printed for failed examples
554
+ when the location is not unique. (Myron Marston, #1884)
555
+ * Add `config.example_status_persistence_file_path` option, which is
556
+ used to persist the last run status of each example. (Myron Marston, #1888)
557
+ * Add `:last_run_status` metadata to each example, which indicates what
558
+ happened the last time an example ran. (Myron Marston, #1888)
559
+ * Add `--only-failures` CLI option which filters to only the examples
560
+ that failed the last time they ran. (Myron Marston, #1888)
561
+ * Add `--next-failure` CLI option which allows you to repeatedly focus
562
+ on just one of the currently failing examples, then move on to the
563
+ next failure, etc. (Myron Marston, #1888)
564
+ * Make `--order random` ordering stable, so that when you rerun a
565
+ subset with a given seed, the examples will be order consistently
566
+ relative to each other. (Myron Marston, #1908)
567
+ * Set example group constant earlier so errors when evaluating the context
568
+ include the example group name (Myron Marson, #1911)
569
+ * Make `let` and `subject` threadsafe. (Josh Cheek, #1858)
570
+ * Add version information into the JSON formatter. (Mark Swinson, #1883)
571
+ * Add `--bisect` CLI option, which will repeatedly run your suite in
572
+ order to isolate the failures to the smallest reproducible case.
573
+ (Myron Marston, #1917)
574
+ * For `config.include`, `config.extend` and `config.prepend`, apply the
575
+ module to previously defined matching example groups. (Eugene Kenny, #1935)
576
+ * When invalid options are parsed, notify users where they came from
577
+ (e.g. `.rspec` or `~/.rspec` or `ENV['SPEC_OPTS']`) so they can
578
+ easily find the source of the problem. (Myron Marston, #1940)
579
+ * Add pending message contents to the json formatter output. (Jon Rowe, #1949)
580
+ * Add shared group backtrace to the output displayed by the built-in
581
+ formatters for pending examples that have been fixed. (Myron Marston, #1946)
582
+ * Add support for `:aggregate_failures` metadata. Tag an example or
583
+ group with this metadata and it'll use rspec-expectations'
584
+ `aggregate_failures` feature to allow multiple failures in an example
585
+ and list them all, rather than aborting on the first failure. (Myron
586
+ Marston, #1946)
587
+ * When no formatter implements #message add a fallback to prevent those
588
+ messages being lost. (Jon Rowe, #1980)
589
+ * Profiling examples now takes into account time spent in `before(:context)`
590
+ hooks. (Denis Laliberté, Jon Rowe, #1971)
591
+ * Improve failure output when an example has multiple exceptions, such
592
+ as one from an `it` block and one from an `after` block. (Myron Marston, #1985)
593
+
594
+ Bug Fixes:
595
+
596
+ * Handle invalid UTF-8 strings within exception methods. (Benjamin Fleischer, #1760)
597
+ * Fix Rake Task quoting of file names with quotes to work properly on
598
+ Windows. (Myron Marston, #1887)
599
+ * Fix `RSpec::Core::RakeTask#failure_message` so that it gets printed
600
+ when the task failed. (Myron Marston, #1905)
601
+ * Make `let` work properly when defined in a shared context that is applied
602
+ to an individual example via metadata. (Myron Marston, #1912)
603
+ * Ensure `rspec/autorun` respects configuration defaults. (Jon Rowe, #1933)
604
+ * Prevent modules overriding example group defined methods when included,
605
+ prepended or extended by config defined after an example group. (Eugene Kenny, #1935)
606
+ * Fix regression which caused shared examples to be mistakenly run when specs
607
+ where filtered to a particular location. (Ben Axnick, #1963)
608
+ * Fix time formatting logic so that it displays 70 seconds as "1 minute,
609
+ 10 seconds" rather than "1 minute, 1 second". (Paul Brennan, #1984)
610
+ * Fix regression where the formatter loader would allow duplicate formatters.
611
+ (Jon Rowe, #1990)
612
+
613
+ ### 3.2.3 / 2015-04-06
614
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.2.2...v3.2.3)
615
+
616
+ Bug Fixes:
617
+
618
+ * Fix how the DSL methods are defined so that RSpec is compatible with
619
+ gems that define methods of the same name on `Kernel` (such as
620
+ the `its-it` gem). (Alex Kwiatkowski, Ryan Ong, #1907)
621
+ * Fix `before(:context) { skip }` so that it does not wrongly cause the
622
+ spec suite to exit with a non-zero status when no examples failed.
623
+ (Myron Marston, #1926)
624
+
625
+ ### 3.2.2 / 2015-03-11
626
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.2.1...v3.2.2)
627
+
628
+ Bug Fixes:
629
+
630
+ * Fix regression in 3.2.0 that allowed tag-filtered examples to
631
+ run even if there was a location filter applied to the spec
632
+ file that was intended to limit the file to other examples.
633
+ (#1894, Myron Marston)
634
+
635
+ ### 3.2.1 / 2015-02-23
636
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.2.0...v3.2.1)
637
+
638
+ Bug Fixes:
639
+
640
+ * Notify start-of-run seed _before_ `start` notification rather than
641
+ _after_ so that formatters like Fuubar work properly. (Samuel Esposito, #1882)
642
+
643
+ ### 3.2.0 / 2015-02-03
644
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.7...v3.2.0)
645
+
646
+ Enhancements:
647
+
648
+ * Improve the `inspect` output of example groups. (Mike Dalton, #1687)
649
+ * When rake task fails, only output the command if `verbose` flag is
650
+ set. (Ben Snape, #1704)
651
+ * Add `RSpec.clear_examples` as a clear way to reset examples in between
652
+ spec runs, whilst retaining user configuration. (Alexey Fedorov, #1706)
653
+ * Reduce string allocations when defining and running examples by 70%
654
+ and 50% respectively. (Myron Marston, #1738)
655
+ * Removed dependency on pathname from stdlib. (Sam Phippen, #1703)
656
+ * Improve the message presented when a user hits Ctrl-C.
657
+ (Alex Chaffee #1717, #1742)
658
+ * Improve shared example group inclusion backtrace displayed
659
+ in failed example output so that it works for all methods
660
+ of including shared example groups and shows all inclusion
661
+ locations. (Myron Marston, #1763)
662
+ * Issue seed notification at start (as well as the end) of the reporter
663
+ run. (Arlandis Word, #1761)
664
+ * Improve the documentation of around hooks. (Jim Kingdon, #1772)
665
+ * Support prepending of modules into example groups from config and allow
666
+ filtering based on metadata. (Arlandis Word, #1806)
667
+ * Emit warnings when `:suite` hooks are registered on an example group
668
+ (where it has always been ignored) or are registered with metadata
669
+ (which has always been ignored). (Myron Marston, #1805)
670
+ * Provide a friendly error message when users call RSpec example group
671
+ APIs (e.g. `context`, `describe`, `it`, `let`, `before`, etc) from
672
+ within an example where those APIs are unavailable. (Myron Marston, #1819)
673
+ * Provide a friendly error message when users call RSpec example
674
+ APIs (e.g. `expect`, `double`, `stub_const`, etc) from
675
+ within an example group where those APIs are unavailable.
676
+ (Myron Marston, #1819)
677
+ * Add new `RSpec::Core::Sandbox.sandboxed { }` API that facilitates
678
+ testing RSpec with RSpec, allowing you to define example groups
679
+ and example from within an example without affecting the global
680
+ `RSpec.world` state. (Tyler Ball, 1808)
681
+ * Apply line-number filters only to the files they are scoped to,
682
+ allowing you to mix filtered and unfiltered files. (Myron Marston, #1839)
683
+ * When dumping pending examples, include the failure details so that you
684
+ don't have to un-pend the example to see it. (Myron Marston, #1844)
685
+ * Make `-I` option support multiple values when separated by
686
+ `File::PATH_SEPARATOR`, such as `rspec -I foo:bar`. This matches
687
+ the behavior of Ruby's `-I` option. (Fumiaki Matsushima, #1855).
688
+ * Treat each example as having a singleton example group for the
689
+ purposes of applying metadata-based features that normally apply
690
+ to example groups to individually tagged examples. For example,
691
+ `RSpec.shared_context "Uses redis", :uses_redis` will now apply
692
+ to individual examples tagged with `:uses_redis`, as will
693
+ `config.include RedisHelpers, :uses_redis`, and
694
+ `config.before(:context, :uses_redis) { }`, etc. (Myron Marston, #1749)
695
+
696
+ Bug Fixes:
697
+
698
+ * When assigning generated example descriptions, surface errors
699
+ raised by `matcher.description` in the example description.
700
+ (Myron Marston, #1771)
701
+ * Don't consider expectations from `after` hooks when generating
702
+ example descriptions. (Myron Marston, #1771)
703
+ * Don't apply metadata-filtered config hooks to examples in groups
704
+ with matching metadata when those examples override the parent
705
+ metadata value to not match. (Myron Marston, #1796)
706
+ * Fix `config.expect_with :minitest` so that `skip` uses RSpec's
707
+ implementation rather than Minitest's. (Jonathan Rochkind, #1822)
708
+ * Fix `NameError` caused when duplicate example group aliases are defined and
709
+ the DSL is not globally exposed. (Aaron Kromer, #1825)
710
+ * When a shared example defined in an external file fails, use the host
711
+ example group (from a loaded spec file) for the re-run command to
712
+ ensure the command will actually work. (Myron Marston, #1835)
713
+ * Fix location filtering to work properly for examples defined in
714
+ a nested example group within a shared example group defined in
715
+ an external file. (Bradley Schaefer, Xavier Shay, Myron Marston, #1837)
716
+ * When a pending example fails (as expected) due to a mock expectation,
717
+ set `RSpec::Core::Example::ExecutionResult#pending_exception` --
718
+ previously it was not being set but should have been. (Myron Marston, #1844)
719
+ * Fix rake task to work when `rspec-core` is installed in a directory
720
+ containing a space. (Guido Günther, #1845)
721
+ * Fix regression in 3.1 that caused `describe Regexp` to raise errors.
722
+ (Durran Jordan, #1853)
723
+ * Fix regression in 3.x that caused the profile information to be printed
724
+ after the summary. (Max Lincoln, #1857)
725
+ * Apply `--seed` before loading `--require` files so that required files
726
+ can access the provided seed. (Myron Marston, #1745)
727
+ * Handle `RSpec::Core::Formatters::DeprecationFormatter::FileStream` being
728
+ reopened with an IO stream, which sometimes happens with spring.
729
+ (Kevin Mook, #1757)
730
+
731
+ ### 3.1.7 / 2014-10-11
732
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.6...v3.1.7)
733
+
734
+ Bug Fixes:
735
+
736
+ * Fix `Metadata.relative_path` so that for a current directory of
737
+ `/foo/bar`, `/foo/bar_1` is not wrongly converted to `._1`.
738
+ (Akos Vandra, #1730)
739
+ * Prevent constant lookup mistakenly finding `RSpec::ExampleGroups` generated
740
+ constants on 1.9.2 by appending a trailing `_` to the generated names.
741
+ (Jon Rowe, #1737)
742
+ * Fix bug in `:pending` metadata. If it got set in any way besides passing
743
+ it as part of the metadata literal passed to `it` (such as by using
744
+ `define_derived_metadata`), it did not have the desired effect,
745
+ instead marking the example as `:passed`. (Myron Marston, #1739)
746
+
747
+ ### 3.1.6 / 2014-10-08
748
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.5...v3.1.6)
749
+
750
+ Bug Fixes:
751
+
752
+ * Fix regression in rake task pattern handling, that prevented patterns
753
+ that were relative from the current directory rather than from `spec`
754
+ from working properly. (Myron Marston, #1734)
755
+ * Prevent rake task from generating duplicate load path entries.
756
+ (Myron Marston, #1735)
757
+
758
+ ### 3.1.5 / 2014-09-29
759
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.4...v3.1.5)
760
+
761
+ Bug Fixes:
762
+
763
+ * Fix issue with the rake task incorrectly escaping strings on Windows.
764
+ (Jon Rowe #1718)
765
+ * Support absolute path patterns. While this wasn't officially supported
766
+ previously, setting `rake_task.pattern` to an absolute path pattern in
767
+ RSpec 3.0 and before worked since it delegated to `FileList` internally
768
+ (but now just forwards the pattern on to the `rspec` command).
769
+ (Myron Marston, #1726)
770
+
771
+ ### 3.1.4 / 2014-09-18
772
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.3...v3.1.4)
773
+
774
+ Bug Fixes:
775
+
776
+ * Fix implicit `subject` when using `describe false` or `describe nil`
777
+ so that it returns the provided primitive rather than the string
778
+ representation. (Myron Marston, #1710)
779
+ * Fix backtrace filtering to allow code in subdirectories of your
780
+ current working directory (such as vendor/bundle/...) to be filtered
781
+ from backtraces. (Myron Marston, #1708)
782
+
783
+ ### 3.1.3 / 2014-09-15
784
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.2...v3.1.3)
785
+
786
+ Bug Fixes:
787
+
788
+ * Fix yet another regression in rake task pattern handling, to allow
789
+ `task.pattern = FileList["..."]` to work. That was never intended
790
+ to be supported but accidentally worked in 3.0 and earlier.
791
+ (Myron Marston, #1701)
792
+ * Fix pattern handling so that files are normalized to absolute paths
793
+ before subtracting the `--exclude-pattern` matched files from the
794
+ `--pattern` matched files so that it still works even if the patterns
795
+ are in slightly different forms (e.g. one starting with `./`).
796
+ (Christian Nelson, #1698)
797
+
798
+ ### 3.1.2 / 2014-09-08
799
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.1...v3.1.2)
800
+
801
+ Bug Fixes:
802
+
803
+ * Fix another regression in rake task pattern handling, so that patterns
804
+ that start with `./` still work. (Christian Nelson, #1696)
805
+
806
+ ### 3.1.1 / 2014-09-05
807
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.1.0...v3.1.1)
808
+
809
+ Bug Fixes:
810
+
811
+ * Fix a regression in rake task pattern handling, so that `rake_task.pattern = array`
812
+ works again. While we never intended to support array values (or even knew that worked!),
813
+ the implementation from 3.0 and earlier used `FileList` internally, which allows arrays.
814
+ The fix restores the old behavior. (Myron Marston, #1694)
815
+
816
+ ### 3.1.0 / 2014-09-04
817
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.0.4...v3.1.0)
818
+
819
+ Enhancements:
820
+
821
+ * Update files generated by `rspec --init` so that warnings are enabled
822
+ in commented out section of `spec_helper` rather than `.rspec` so users
823
+ have to consciously opt-in to the setting. (Andrew Hooker, #1572)
824
+ * Update `spec_helper` generated by `rspec --init` so that it sets the new
825
+ rspec-expectations `include_chain_clauses_in_custom_matcher_descriptions`
826
+ config option (which will be on by default in RSpec 4) and also sets the
827
+ rspec-mocks `verify_partial_doubles` option (which will also default
828
+ to on in RSpec 4). (Myron Marston, #1647)
829
+ * Provide an `inspect` output for example procsy objects (used in around
830
+ hooks) that doesn't make them look like procs. (Jon Rowe, #1620)
831
+ * Remove a few unneeded `require` statements from
832
+ `rspec/core/rake_task.rb`, making it even more lighterweight.
833
+ (Myron Marston, #1640)
834
+ * Allow rspec-core to be used when neither rspec-mocks or
835
+ rspec-expectations are installed, without requiring any
836
+ user configuration. (Sam Phippen, Myron Marston, #1615)
837
+ * Don't filter out gems from backtraces by default. (The RSpec
838
+ gems will still be filtered). User feedback has indicated
839
+ that including gems in default backtraces will be useful.
840
+ (Myron Marston, #1641)
841
+ * Add new `config.filter_gems_from_backtrace "rack", "rake"` API
842
+ to easily filter the named gems from backtraces. (Myron Marston, #1682)
843
+ * Fix default backtrace filters so that the RSpec binary is
844
+ excluded when installing RSpec as a bundler `:git` dependency.
845
+ (Myron Marston, #1648)
846
+ * Simplify command generated by the rake task so that it no longer
847
+ includes unnecessary `-S`. (Myron Marston, #1559)
848
+ * Add `--exclude-pattern` CLI option, `config.exclude_pattern =` config
849
+ option and `task.exclude_pattern =` rake task config option. Matching
850
+ files will be excluded. (John Gesimondo, Myron Marston, #1651, #1671)
851
+ * When an around hook fails to execute the example, mark it as
852
+ pending (rather than passing) so the user is made aware of the
853
+ fact that the example did not actually run. (Myron Marston, #1660)
854
+ * Remove dependency on `FileUtils` from the standard library so that users do
855
+ not get false positives where their code relies on it but they are not
856
+ requiring it. (Sam Phippen, #1565)
857
+
858
+ Bug Fixes:
859
+
860
+ * Fix rake task `t.pattern =` option so that it does not run all specs
861
+ when it matches no files, by passing along a `--pattern` option to
862
+ the `rspec` command, rather than resolving the file list and passing
863
+ along the files individually. (Evgeny Zislis, #1653)
864
+ * Fix rake task default pattern so that it follows symlinks properly.
865
+ (Myron Marston, #1672)
866
+ * Fix default pattern used with `rspec` command so that it follows
867
+ symlinks properly. (Myron Marston, #1672)
868
+ * Change how we assign constant names to example group classes so that
869
+ it avoids a problem with `describe "Core"`. (Daniela Wellisz, #1679)
870
+ * Handle rendering exceptions that have a different encoding than that
871
+ of their original source file. (Jon Rowe, #1681)
872
+ * Allow access to message_lines without colour for failed examples even
873
+ when they're part of a shared example group. (tomykaira, #1689)
874
+
1
875
  ### 3.0.4 / 2014-08-14
2
876
  [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.0.3...v3.0.4)
3
877
 
@@ -312,6 +1186,9 @@ Bug Fixes:
312
1186
  directory (was broken in beta1). (Jon Rowe)
313
1187
  * Prevent RSpec mangling file names that have substrings containing `line_number`
314
1188
  or `default_path`. (Matijs van Zuijlen)
1189
+ * Fix failure line detection so that it handles relative file paths
1190
+ (which can happen when running specs through `ruby` using `rspec/autorun`).
1191
+ (Myron Marston, #1829)
315
1192
 
316
1193
  ### 3.0.0.beta1 / 2013-11-07
317
1194
  [Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.1...v3.0.0.beta1)
@@ -385,6 +1262,14 @@ Deprecations:
385
1262
  longer has an affect now that the behavior it enabled is always
386
1263
  enabled. (Myron Marston)
387
1264
 
1265
+ ### 2.99.2 / 2014-08-19
1266
+ [Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.1...v2.99.2)
1267
+
1268
+ Enhancements:
1269
+
1270
+ * Improve deprecation warning for RSpec 3 change in `describe <a symbol>`
1271
+ behavior. (Jon Rowe, #1667)
1272
+
388
1273
  ### 2.99.1 / 2014-06-19
389
1274
  [Full Changelog](http://github.com/rspec/rspec-core/compare/v2.99.0...v2.99.1)
390
1275
 
@@ -1250,7 +2135,7 @@ project's root directory or in your home directory:
1250
2135
 
1251
2136
  require "autotest/bundler"
1252
2137
 
1253
- Now you can just type 'autotest' on the commmand line and it will work as you expect.
2138
+ Now you can just type 'autotest' on the command line and it will work as you expect.
1254
2139
 
1255
2140
  If you don't want 'bundle exec', there is nothing you have to do.
1256
2141
 
@@ -1343,6 +2228,7 @@ Bug fixes
1343
2228
  [Full Changelog](http://github.com/rspec/rspec-core/compare/v2.2.0...v2.2.1)
1344
2229
 
1345
2230
  Bug fixes
2231
+
1346
2232
  * alias_method instead of override Kernel#method_missing (John Wilger)
1347
2233
  * changed --autotest to --tty in generated command (MIKAMI Yoshiyuki)
1348
2234
  * revert change to debugger (had introduced conflict with Rails)
@@ -1438,7 +2324,7 @@ Bug fixes
1438
2324
  Enhancements
1439
2325
 
1440
2326
  * implicitly require unknown formatters so you don't have to require the file
1441
- explicitly on the commmand line (Michael Grosser)
2327
+ explicitly on the command line (Michael Grosser)
1442
2328
  * add --out/-o option to assign output target
1443
2329
  * added fail_fast configuration option to abort on first failure
1444
2330
  * support a Hash subject (its([:key]) { should == value }) (Josep M. Bach)