This version is outdated! Click here to see latest



BDD for Ruby

Critical or Security advisories for 3.4.0

This version doesn't have any advisory. Want to report one?

Changelog for 3.4.0

Full Changelog


  • Combine multiple --pattern arguments making them equivalent to --pattern=1,2,...,n. (Jon Rowe, #2002)
  • Improve inspect and to_s output for RSpec::Core::Example objects, replacing Ruby's excessively verbose output. (Gavin Miller, #1922)
  • Add silence_filter_announcements configuration option. (David Raffensperger, #2007)
  • Add optional example_finished notification to the reporter protocol for when you don't care about the example outcome. (Jon Rowe, #2013)
  • Switch --bisect to a recursion-based bisection algorithm rather than a permutation-based one. This better handles cases where an example depends upon multiple other examples instead of just one and minimizes the number of runs necessary to determine that an example set cannot be minimized further. (Simon Coffey, #1997)
  • Allow simple filters (e.g. :symbol key only) to be triggered by truthey values. (Tim Mertens, #2035)
  • Remove unneeded warning about need for ansicon on Windows when using RSpec's --color option. (Ashley Engelund, #2038)
  • Add option to configure RSpec to raise errors when issuing warnings. (Jon Rowe, #2052)
  • Append the root cause of a failure or error to the printed failure output when a cause is available. (Adam Magan)
  • Stop rescuing NoMemoryError, SignalExcepetion, Interrupt and SystemExit. It is dangerous to interfere with these. (Myron Marston, #2063)
  • Add config.project_source_dirs setting which RSpec uses to determine if a backtrace line comes from your project source or from some external library. It defaults to spec, lib and app but can be configured differently. (Myron Marston, #2088)
  • Improve failure line detection so that it looks for the failure line in any project source directory instead of just in the spec file. In addition, if no backtrace lines can be found from a project source file, we fall back to displaying the source of the first backtrace line. This should virtually eliminate the "Unable to find matching line from backtrace" messages. (Myron Marston, #2088)
  • Add support for :extra_failure_lines example metadata that will be appended to the failure output. (bootstraponline, #2092).
  • Add RSpec::Core::Example#duplicate_with to produce new examples with cloned metadata. (bootstraponline, #2098)
  • Add RSpec::Core::Configuration#on_example_group_definition to register hooks to be invoked when example groups are created. (bootstraponline, #2094)
  • Add add_example and remove_example to RSpec::Core::ExampleGroup to allow manipulating an example groups examples. (bootstraponline, #2095)
  • Display multiline failure source lines in failure output when Ripper is available (MRI >= 1.9.2, and JRuby >= 1.7.5 && < (Yuji Nakayama, #2083)
  • Add max_displayed_failure_line_count configuration option (defaults to 10). (Yuji Nakayama, #2083)
  • Enhance fail_fast option so it can take a number (e.g. --fail-fast=3) to force the run to abort after the specified number of failures. (Jack Scotti, #2065)
  • Syntax highlight the failure snippets in text formatters when color is enabled and the coderay gem is installed on a POSIX system. (Myron Marston, #2109)

Bug Fixes:

  • Lock example_status_persistence_file when reading from and writing to it to prevent race conditions when multiple processes try to use it. (Ben Woosley, #2029)
  • Fix regression in 3.3 that caused spec file names with square brackets in them (such as 1[]_spec.rb) to not be loaded properly. (Myron Marston, #2041)
  • Fix output encoding issue caused by ASCII literal on 1.9.3 (Jon Rowe, #2072)
  • Fix requires in rspec/core/rake_task.rb to avoid double requires seen by some users. (Myron Marston, #2101)

Dependencies for 3.4.0

Name Requirement Status
~> 3.4.0

~> 3.4.0

~> 3.4.0

My projects using rspec

Name Locked version Requirement
You should be logged in to see which of your projects use rspec.