Class: RSpec::Core::Configuration
- Inherits:
-
Object
- Object
- RSpec::Core::Configuration
- Includes:
- Hooks
- Defined in:
- lib/rspec/core/configuration.rb
Overview
Stores runtime configuration information.
Configuration options are loaded from ~/.rspec
, .rspec
,
.rspec-local
, command line switches, and the SPEC_OPTS
environment
variable (listed in lowest to highest precedence; for example, an option
in ~/.rspec
can be overridden by an option in .rspec-local
).
Constant Summary
Instance Attribute Summary (collapse)
-
- (void) default_color
The default output color.
-
- (void) default_path
Path to use if no path is provided to the
rspec
command (default:"spec"
). -
- (void) detail_color
Color used to print details.
-
- (void) drb
Run examples over DRb (default:
false
). -
- (void) drb_port
The drb_port (default: nil).
-
- (void) dry_run
Prints the formatter output of your suite without running any examples or hooks.
-
- (void) error_stream
Default:
$stderr
. -
- (void) exclude_pattern
Exclude files matching this pattern.
-
- (void) fail_fast
Clean up and exit after the first failure (default:
false
). -
- (void) failure_color
Color to use to indicate failure.
-
- (void) failure_exit_code
The exit code to return if there are any failures (default: 1).
-
- (Array) files_to_run
readonly
The spec files RSpec will run.
-
- (void) fixed_color
Color used when a pending example is fixed.
-
- (void) libs
readonly
Returns dirs that have been prepended to the load path by the
-I
command line option. -
- (void) output_stream
Determines where RSpec will send its output.
-
- (void) pattern
Load files matching this pattern (default:
'**{,/*/**}/*_spec.rb'
). -
- (void) pending_color
Color to use to print pending examples.
-
- (void) profile_examples
private
Defaults
profile_examples
to 10 examples when@profile_examples
istrue
. -
- (void) requires
readonly
Indicates files configured to be required.
-
- (void) run_all_when_everything_filtered
Run all examples if none match the configured filters (default:
false
). -
- (void) success_color
Color to use to indicate success.
Instance Method Summary (collapse)
-
- (void) add_formatter(formatter)
(also: #formatter=)
Adds a formatter to the formatters collection.
-
- (void) add_setting(name, opts = {})
Adds a custom setting to the RSpec.configuration object.
-
- (void) alias_example_group_to(new_name, *args)
Creates a method that defines an example group with the provided metadata.
-
- (void) alias_example_to(name, *args)
Creates a method that delegates to
example
including the submittedargs
. -
- (void) alias_it_behaves_like_to(new_name, report_label = '')
(also: #alias_it_should_behave_like_to)
Define an alias for it_should_behave_like that allows different language (like "it_has_behavior" or "it_behaves_like") to be employed when including shared examples.
-
- (void) backtrace_exclusion_patterns
Regexps used to exclude lines from backtraces.
-
- (void) backtrace_exclusion_patterns=(patterns)
Set regular expressions used to exclude lines in backtrace.
-
- (void) backtrace_inclusion_patterns
Regexps used to include lines in backtraces.
-
- (void) backtrace_inclusion_patterns=(patterns)
Set regular expressions used to include lines in backtrace.
-
- (Boolean) color
Returns the configuration option for color, but should not be used to check if color is supported.
-
- (void) color=(true_or_false)
Toggle output color.
-
- (Boolean) color_enabled?(output = output_stream)
Check if color is enabled for a particular output.
-
- (void) default_formatter
The formatter that will be used if no formatter has been set.
-
- (void) default_formatter=(value)
Sets a fallback formatter to use if none other has been set.
-
- (void) define_derived_metadata(*filters) {|metadata| ... }
Defines a callback that can assign derived metadata values.
-
- (IO, String) deprecation_stream
Determines where deprecation warnings are printed.
-
- (void) deprecation_stream=(value)
Determines where deprecation warnings are printed.
-
- (void) disable_monkey_patching!
Enables zero monkey patching mode for RSpec.
-
- (void) exclusion_filter
Returns the
exclusion_filter
. -
- (void) exclusion_filter=(filter)
Clears and reassigns the
exclusion_filter
. -
- (void) expect_with(*frameworks)
Sets the expectation framework module(s) to be included in each example group.
-
- (void) expectation_framework=(framework)
Delegates to expect_with(framework).
-
- (void) expectation_frameworks
Returns the configured expectation framework adapter module(s).
-
- (void) expose_current_running_example_as(method_name)
Exposes the current running example via the named helper method.
-
- (void) expose_dsl_globally=(value)
Use this to expose the core RSpec DSL via
Module
and themain
object. -
- (Boolean) expose_dsl_globally?
Indicates if the DSL has been exposed off of modules and
main
. -
- (void) extend(mod, *filters)
Tells RSpec to extend example groups with
mod
. -
- (void) filter_gems_from_backtrace(*gem_names)
Adds #backtrace_exclusion_patterns that will filter lines from the named gems from backtraces.
-
- (void) filter_run_excluding(*args)
Adds key/value pairs to the
exclusion_filter
. -
- (void) filter_run_including(*args)
(also: #filter_run)
Adds key/value pairs to the
inclusion_filter
. -
- (void) format_docstrings(&block)
Formats the docstring output using the block provided.
-
- (Array) formatters
Returns a duplicate of the formatters currently loaded in the
FormatterLoader
for introspection. -
- (void) full_backtrace=(true_or_false)
Toggle full backtrace.
-
- (Boolean) full_backtrace?
Check if full backtrace is enabled.
-
- (Array) full_description
Full description filter.
-
- (void) full_description=(description)
Run examples matching on
description
in all files to run. -
- (void) include(mod, *filters)
Tells RSpec to include
mod
in example groups. -
- (void) inclusion_filter
(also: #filter)
Returns the
inclusion_filter
. -
- (void) inclusion_filter=(filter)
(also: #filter=)
Clears and reassigns the
inclusion_filter
. -
- (Configuration) initialize
constructor
A new instance of Configuration.
-
- (void) mock_framework
Returns the configured mock framework adapter module.
-
- (void) mock_framework=(framework)
Delegates to mock_framework=(framework).
-
- (void) mock_with(framework)
Sets the mock framework adapter module.
-
- (void) order=
Sets the default global order and, if order is
'rand:'
, also sets the seed. -
- (void) raise_errors_for_deprecations!
Turns deprecation warnings into errors, in order to surface the full backtrace of the call site.
-
- (void) register_ordering {|list| ... }
Registers a named ordering strategy that can later be used to order an example group's subgroups by adding
:order =>
metadata to the example group. -
- (void) seed
Seed for random ordering (default: generated randomly each run).
-
- (void) seed=
Sets the seed value and sets the default global ordering to random.
-
- (void) treat_symbols_as_metadata_keys_with_true_values=(_value)
Deprecated.
-
- (void) warnings=(value)
Set Ruby warnings on or off.
-
- (Boolean) warnings?
Whether or not ruby warnings are enabled.
Methods included from Hooks
#after, #append_after, #around, #before, #prepend_before
Constructor Details
- (Configuration) initialize
Returns a new instance of Configuration
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 |
# File 'lib/rspec/core/configuration.rb', line 284 def initialize # rubocop:disable Style/GlobalVars @start_time = $_rspec_core_load_started_at || ::RSpec::Core::Time.now # rubocop:enable Style/GlobalVars @expectation_frameworks = [] @include_or_extend_modules = [] @mock_framework = nil @files_or_directories_to_run = [] @color = false @pattern = '**{,/*/**}/*_spec.rb' @exclude_pattern = '' @failure_exit_code = 1 @spec_files_loaded = false @backtrace_formatter = BacktraceFormatter.new @default_path = 'spec' @deprecation_stream = $stderr @output_stream = $stdout @reporter = nil @reporter_buffer = nil @filter_manager = FilterManager.new @ordering_manager = Ordering::ConfigurationManager.new @preferred_options = {} @failure_color = :red @success_color = :green @pending_color = :yellow @default_color = :white @fixed_color = :blue @detail_color = :cyan @profile_examples = false @requires = [] @libs = [] @derived_metadata_blocks = [] end |
Instance Attribute Details
- (void) default_color
The default output color.
243 |
# File 'lib/rspec/core/configuration.rb', line 243 add_setting :default_color |
- (void) default_path
Path to use if no path is provided to the rspec
command (default:
"spec"
). Allows you to just type rspec
instead of rspec spec
to
run all the examples in the spec
directory.
Note: Other scripts invoking rspec
indirectly will ignore this
setting.
95 |
# File 'lib/rspec/core/configuration.rb', line 95 add_setting :default_path |
- (void) detail_color
Color used to print details.
257 |
# File 'lib/rspec/core/configuration.rb', line 257 add_setting :detail_color |
- (void) drb
Run examples over DRb (default: false
). RSpec doesn't supply the DRb
server, but you can use tools like spork.
100 |
# File 'lib/rspec/core/configuration.rb', line 100 add_setting :drb |
- (void) drb_port
The drb_port (default: nil).
104 |
# File 'lib/rspec/core/configuration.rb', line 104 add_setting :drb_port |
- (void) dry_run
Prints the formatter output of your suite without running any examples or hooks.
156 |
# File 'lib/rspec/core/configuration.rb', line 156 add_setting :dry_run |
- (void) error_stream
Default: $stderr
.
108 |
# File 'lib/rspec/core/configuration.rb', line 108 add_setting :error_stream |
- (void) exclude_pattern
Exclude files matching this pattern
200 |
# File 'lib/rspec/core/configuration.rb', line 200 define_reader :exclude_pattern |
- (void) fail_fast
Clean up and exit after the first failure (default: false
).
151 |
# File 'lib/rspec/core/configuration.rb', line 151 add_setting :fail_fast |
- (void) failure_color
Color to use to indicate failure.
236 |
# File 'lib/rspec/core/configuration.rb', line 236 add_setting :failure_color |
- (void) failure_exit_code
The exit code to return if there are any failures (default: 1).
160 |
# File 'lib/rspec/core/configuration.rb', line 160 add_setting :failure_exit_code |
- (Array) files_to_run
The spec files RSpec will run
767 768 769 |
# File 'lib/rspec/core/configuration.rb', line 767 def files_to_run @files_to_run ||= get_files_to_run(@files_or_directories_to_run) end |
- (void) fixed_color
Color used when a pending example is fixed.
250 |
# File 'lib/rspec/core/configuration.rb', line 250 add_setting :fixed_color |
- (void) libs
Returns dirs that have been prepended to the load path by the -I
command line option
168 |
# File 'lib/rspec/core/configuration.rb', line 168 define_reader :libs |
- (void) output_stream
Determines where RSpec will send its output.
Default: $stdout
.
173 |
# File 'lib/rspec/core/configuration.rb', line 173 define_reader :output_stream |
- (void) pattern
Load files matching this pattern (default: '**{,/*/**}/*_spec.rb'
)
190 |
# File 'lib/rspec/core/configuration.rb', line 190 define_reader :pattern |
- (void) pending_color
Color to use to print pending examples.
229 |
# File 'lib/rspec/core/configuration.rb', line 229 add_setting :pending_color |
- (void) profile_examples
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Defaults profile_examples
to 10 examples when @profile_examples
is true
.
211 |
# File 'lib/rspec/core/configuration.rb', line 211 add_setting :profile_examples |
- (void) requires
Indicates files configured to be required
164 |
# File 'lib/rspec/core/configuration.rb', line 164 define_reader :requires |
- (void) run_all_when_everything_filtered
Run all examples if none match the configured filters (default: false
).
215 |
# File 'lib/rspec/core/configuration.rb', line 215 add_setting :run_all_when_everything_filtered |
- (void) success_color
Color to use to indicate success.
222 |
# File 'lib/rspec/core/configuration.rb', line 222 add_setting :success_color |
Instance Method Details
- (void) add_formatter(formatter) Also known as: formatter=
Adds a formatter to the formatters collection. formatter
can be a
string representing any of the built-in formatters (see
built_in_formatter
), or a custom formatter class.
Note
For internal purposes, add_formatter
also accepts the name of a class
and paths to use for output streams, but you should consider that a
private api that may change at any time without notice.
670 671 672 673 |
# File 'lib/rspec/core/configuration.rb', line 670 def add_formatter(formatter_to_use, *paths) paths << output_stream if paths.empty? formatter_loader.add formatter_to_use, *paths end |
- (void) add_setting(name) - (void) add_setting(name, opts)
Adds a custom setting to the RSpec.configuration object.
RSpec.configuration.add_setting :foo
Used internally and by extension frameworks like rspec-rails, so they can add config settings that are domain specific. For example:
RSpec.configure do |c|
c.add_setting :use_transactional_fixtures,
:default => true,
:alias_with => :use_transactional_examples
end
add_setting
creates three methods on the configuration object, a
setter, a getter, and a predicate:
RSpec.configuration.foo=(value)
RSpec.configuration.foo
RSpec.configuration.foo? # returns true if foo returns anything but nil or false
370 371 372 373 374 375 376 |
# File 'lib/rspec/core/configuration.rb', line 370 def add_setting(name, opts={}) default = opts.delete(:default) (class << self; self; end).class_exec do add_setting(name, opts) end __send__("#{name}=", default) if default end |
- (void) alias_example_group_to(new_name, *args)
The defined aliased will also be added to the top level
(e.g. main
and from within modules) if
expose_dsl_globally
is set to true.
Creates a method that defines an example group with the provided metadata. Can be used to define example group/metadata shortcuts.
835 836 837 838 |
# File 'lib/rspec/core/configuration.rb', line 835 def alias_example_group_to(new_name, *args) = Metadata.build_hash_from(args) RSpec::Core::ExampleGroup.define_example_group_method(new_name, ) end |
- (void) alias_example_to(name, *args)
The specific example alias below (pending
) is already
defined for you.
Use with caution. This extends the language used in your
specs, but does not add any additional documentation. We use this
in rspec to define methods like focus
and xit
, but we also add
docs for those methods.
Creates a method that delegates to example
including the submitted
args
. Used internally to add variants of example
like pending
:
803 804 805 806 |
# File 'lib/rspec/core/configuration.rb', line 803 def alias_example_to(name, *args) = Metadata.build_hash_from(args) RSpec::Core::ExampleGroup.define_example_method(name, ) end |
- (void) alias_it_behaves_like_to(new_name, report_label = '') Also known as: alias_it_should_behave_like_to
Use with caution. This extends the language used in your
specs, but does not add any additional documentation. We use this
in rspec to define it_should_behave_like
(for backward
compatibility), but we also add docs for that method.
Define an alias for it_should_behave_like that allows different language (like "it_has_behavior" or "it_behaves_like") to be employed when including shared examples.
866 867 868 |
# File 'lib/rspec/core/configuration.rb', line 866 def alias_it_behaves_like_to(new_name, report_label='') RSpec::Core::ExampleGroup.define_nested_shared_group_method(new_name, report_label) end |
- (void) backtrace_exclusion_patterns
Regexps used to exclude lines from backtraces.
Excludes lines from ruby (and jruby) source, installed gems, anything in any "bin" directory, and any of the rspec libs (outside gem installs) by default.
You can modify the list via the getter, or replace it with the setter.
To override this behaviour and display a full backtrace, use
--backtrace
on the command line, in a .rspec
file, or in the
rspec_options
attribute of RSpec's rake task.
406 407 408 |
# File 'lib/rspec/core/configuration.rb', line 406 def backtrace_exclusion_patterns @backtrace_formatter.exclusion_patterns end |
- (void) backtrace_exclusion_patterns=(patterns)
Set regular expressions used to exclude lines in backtrace
412 413 414 |
# File 'lib/rspec/core/configuration.rb', line 412 def backtrace_exclusion_patterns=(patterns) @backtrace_formatter.exclusion_patterns = patterns end |
- (void) backtrace_inclusion_patterns
Regexps used to include lines in backtraces.
Defaults to [Regexp.new Dir.getwd].
Lines that match an exclusion and an inclusion pattern will be included.
You can modify the list via the getter, or replace it with the setter.
424 425 426 |
# File 'lib/rspec/core/configuration.rb', line 424 def backtrace_inclusion_patterns @backtrace_formatter.inclusion_patterns end |
- (void) backtrace_inclusion_patterns=(patterns)
Set regular expressions used to include lines in backtrace
430 431 432 |
# File 'lib/rspec/core/configuration.rb', line 430 def backtrace_inclusion_patterns=(patterns) @backtrace_formatter.inclusion_patterns = patterns end |
- (Boolean) color
Returns the configuration option for color, but should not be used to check if color is supported.
615 616 617 |
# File 'lib/rspec/core/configuration.rb', line 615 def color value_for(:color, @color) end |
- (void) color=(true_or_false)
Toggle output color
629 630 631 632 633 634 635 636 637 638 |
# File 'lib/rspec/core/configuration.rb', line 629 def color=(true_or_false) return unless true_or_false if RSpec.world.windows_os? && !ENV['ANSICON'] RSpec.warning "You must use ANSICON 1.31 or later (http://adoxa.3eeweb.com/ansicon/) to use colour on Windows" @color = false else @color = true end end |
- (Boolean) color_enabled?(output = output_stream)
Check if color is enabled for a particular output
623 624 625 |
# File 'lib/rspec/core/configuration.rb', line 623 def color_enabled?(output=output_stream) output_to_tty?(output) && color end |
- (void) default_formatter
The formatter that will be used if no formatter has been set. Defaults to 'progress'.
678 679 680 |
# File 'lib/rspec/core/configuration.rb', line 678 def default_formatter formatter_loader.default_formatter end |
- (void) default_formatter=(value)
Sets a fallback formatter to use if none other has been set.
689 690 691 |
# File 'lib/rspec/core/configuration.rb', line 689 def default_formatter=(value) formatter_loader.default_formatter = value end |
- (void) define_derived_metadata(*filters) {|metadata| ... }
Defines a callback that can assign derived metadata values.
1311 1312 1313 1314 |
# File 'lib/rspec/core/configuration.rb', line 1311 def (*filters, &block) = Metadata.build_hash_from(filters, :warn_about_example_group_filtering) @derived_metadata_blocks << [, block] end |
- (IO, String) deprecation_stream
Determines where deprecation warnings are printed.
Defaults to $stderr
.
133 |
# File 'lib/rspec/core/configuration.rb', line 133 define_reader :deprecation_stream |
- (void) deprecation_stream=(value)
Determines where deprecation warnings are printed.
137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/rspec/core/configuration.rb', line 137 def deprecation_stream=(value) if @reporter && !value.equal?(@deprecation_stream) warn "RSpec's reporter has already been initialized with " \ "#{deprecation_stream.inspect} as the deprecation stream, so your change to "\ "`deprecation_stream` will be ignored. You should configure it earlier for " \ "it to take effect, or use the `--deprecation-out` CLI option. " \ "(Called from #{CallerFilter.first_non_rspec_line})" else @deprecation_stream = value end end |
- (void) disable_monkey_patching!
It configures rspec-mocks and rspec-expectations only
if the user is using those (either explicitly or implicitly
by not setting mock_with
or expect_with
to anything else).
If the user uses this options with mock_with :mocha
(or similiar) they will still have monkey patching active
in their test environment from mocha.
Enables zero monkey patching mode for RSpec. It removes monkey
patching of the top-level DSL methods (describe
,
shared_examples_for
, etc) onto main
and Module
, instead
requiring you to prefix these methods with RSpec.
. It enables
expect-only syntax for rspec-mocks and rspec-expectations. It
simply disables monkey patching on whatever pieces of rspec
the user is using.
1286 1287 1288 1289 1290 1291 |
# File 'lib/rspec/core/configuration.rb', line 1286 def disable_monkey_patching! self.expose_dsl_globally = false self.disable_monkey_patching = true conditionally_disable_mocks_monkey_patching conditionally_disable_expectations_monkey_patching end |
- (void) exclusion_filter
Returns the exclusion_filter
. If none has been set, returns an empty
hash.
977 978 979 |
# File 'lib/rspec/core/configuration.rb', line 977 def exclusion_filter filter_manager.exclusions end |
- (void) exclusion_filter=(filter)
Clears and reassigns the exclusion_filter
. Set to nil
if you don't
want any exclusion filter at all.
Warning
This overrides any exclusion filters/tags set on the command line or in configuration files.
970 971 972 973 |
# File 'lib/rspec/core/configuration.rb', line 970 def exclusion_filter=(filter) = Metadata.build_hash_from([filter], :warn_about_example_group_filtering) filter_manager.exclude_only end |
- (void) expect_with(*frameworks)
Sets the expectation framework module(s) to be included in each example group.
frameworks
can be :rspec
, :test_unit
, :minitest
, a custom
module, or any combination thereof:
config.expect_with :rspec
config.expect_with :test_unit
config.expect_with :minitest
config.expect_with :rspec, :minitest
config.expect_with OtherExpectationFramework
RSpec will translate :rspec
, :minitest
, and :test_unit
into the
appropriate modules.
Configuration
If the module responds to configuration
, expect_with
will
yield the configuration
object if given a block:
config.expect_with OtherExpectationFramework do |custom_config|
custom_config.custom_setting = true
end
565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 |
# File 'lib/rspec/core/configuration.rb', line 565 def expect_with(*frameworks) modules = frameworks.map do |framework| case framework when Module framework when :rspec require 'rspec/expectations' self.expecting_with_rspec = true ::RSpec::Matchers when :test_unit require 'rspec/core/test_unit_assertions_adapter' ::RSpec::Core::TestUnitAssertionsAdapter when :minitest require 'rspec/core/minitest_assertions_adapter' ::RSpec::Core::MinitestAssertionsAdapter else raise ArgumentError, "#{framework.inspect} is not supported" end end if (modules - @expectation_frameworks).any? assert_no_example_groups_defined(:expect_with) end if block_given? raise "expect_with only accepts a block with a single argument. Call expect_with #{modules.length} times, once with each argument, instead." if modules.length > 1 raise "#{modules.first} must respond to `configuration` so that expect_with can yield it." unless modules.first.respond_to?(:configuration) yield modules.first.configuration end @expectation_frameworks.push(*modules) end |
- (void) expectation_framework=(framework)
Delegates to expect_with(framework)
538 539 540 |
# File 'lib/rspec/core/configuration.rb', line 538 def expectation_framework=(framework) expect_with(framework) end |
- (void) expectation_frameworks
Returns the configured expectation framework adapter module(s)
526 527 528 529 530 531 532 533 534 535 |
# File 'lib/rspec/core/configuration.rb', line 526 def expectation_frameworks if @expectation_frameworks.empty? begin expect_with :rspec rescue LoadError expect_with Module.new end end @expectation_frameworks end |
- (void) expose_current_running_example_as(method_name)
Exposes the current running example via the named
helper method. RSpec 2.x exposed this via example
,
but in RSpec 3.0, the example is instead exposed via
an arg yielded to it
, before
, let
, etc. However,
some extension gems (such as Capybara) depend on the
RSpec 2.x's example
method, so this config option
can be used to maintain compatibility.
1224 1225 1226 1227 1228 1229 1230 1231 |
# File 'lib/rspec/core/configuration.rb', line 1224 def expose_current_running_example_as(method_name) ExposeCurrentExample.module_exec do extend RSpec::SharedContext let(method_name) { |ex| ex } end include ExposeCurrentExample end |
- (void) expose_dsl_globally=(value)
Use this to expose the core RSpec DSL via Module
and the main
object. It will be set automatically but you can override it to
remove the DSL.
Default: true
120 121 122 123 124 125 126 127 128 |
# File 'lib/rspec/core/configuration.rb', line 120 def expose_dsl_globally=(value) if value Core::DSL.expose_globally! Core::SharedExampleGroup::TopLevelDSL.expose_globally! else Core::DSL.remove_globally! Core::SharedExampleGroup::TopLevelDSL.remove_globally! end end |
- (Boolean) expose_dsl_globally?
Indicates if the DSL has been exposed off of modules and main
.
Default: true
112 113 114 |
# File 'lib/rspec/core/configuration.rb', line 112 def expose_dsl_globally? Core::DSL.exposed_globally? end |
- (void) extend(mod, *filters)
Tells RSpec to extend example groups with mod
. Methods defined in
mod
are exposed to example groups (not examples). Use filters
to
constrain the groups to extend.
Similar to include
, but behavior is added to example groups, which
are classes, rather than the examples, which are instances of those
classes.
1047 1048 1049 1050 |
# File 'lib/rspec/core/configuration.rb', line 1047 def extend(mod, *filters) = Metadata.build_hash_from(filters, :warn_about_example_group_filtering) include_or_extend_modules << [:extend, mod, ] end |
- (void) filter_gems_from_backtrace(*gem_names)
The patterns this adds will match the named gems in their common locations (e.g. system gems, vendored with bundler, installed as a :git dependency with bundler, etc) but is not guaranteed to work for all possible gem locations. For example, if you have the gem source in a directory with a completely unrelated name, and use bundler's :path option, this will not filter it.
Adds #backtrace_exclusion_patterns that will filter lines from the named gems from backtraces.
450 451 452 453 454 |
# File 'lib/rspec/core/configuration.rb', line 450 def filter_gems_from_backtrace(*gem_names) gem_names.each do |name| @backtrace_formatter.filter_gem(name) end end |
- (void) filter_run_excluding(*args)
Adds key/value pairs to the exclusion_filter
. If args
includes any symbols that are not part of the hash, each symbol
is treated as a key in the hash with the value true
.
Note
Filters set using this method can be overridden from the command line
or config files (e.g. .rspec
).
958 959 960 961 |
# File 'lib/rspec/core/configuration.rb', line 958 def filter_run_excluding(*args) = Metadata.build_hash_from(args, :warn_about_example_group_filtering) filter_manager.exclude_with_low_priority end |
- (void) filter_run_including(*args) Also known as: filter_run
Adds key/value pairs to the inclusion_filter
. If args
includes any symbols that are not part of the hash, each symbol
is treated as a key in the hash with the value true
.
Note
Filters set using this method can be overridden from the command line
or config files (e.g. .rspec
).
900 901 902 903 |
# File 'lib/rspec/core/configuration.rb', line 900 def filter_run_including(*args) = Metadata.build_hash_from(args, :warn_about_example_group_filtering) filter_manager.include_with_low_priority end |
- (void) format_docstrings(&block)
Formats the docstring output using the block provided.
1119 1120 1121 |
# File 'lib/rspec/core/configuration.rb', line 1119 def format_docstrings(&block) @format_docstrings_block = block_given? ? block : DEFAULT_FORMATTER end |
- (Array) formatters
Returns a duplicate of the formatters currently loaded in
the FormatterLoader
for introspection.
Note as this is a duplicate, any mutations will be disregarded.
699 700 701 |
# File 'lib/rspec/core/configuration.rb', line 699 def formatters formatter_loader.formatters.dup end |
- (void) full_backtrace=(true_or_false)
Toggle full backtrace
606 607 608 |
# File 'lib/rspec/core/configuration.rb', line 606 def full_backtrace=(true_or_false) @backtrace_formatter.full_backtrace = true_or_false end |
- (Boolean) full_backtrace?
Check if full backtrace is enabled
600 601 602 |
# File 'lib/rspec/core/configuration.rb', line 600 def full_backtrace? @backtrace_formatter.full_backtrace? end |
- (Array) full_description
Returns full description filter
655 656 657 |
# File 'lib/rspec/core/configuration.rb', line 655 def full_description filter.fetch :full_description, nil end |
- (void) full_description=(description)
Run examples matching on description
in all files to run.
650 651 652 |
# File 'lib/rspec/core/configuration.rb', line 650 def full_description=(description) filter_run :full_description => Regexp.union(*Array(description).map { |d| Regexp.new(d) }) end |
- (void) include(mod, *filters)
Tells RSpec to include mod
in example groups. Methods defined in
mod
are exposed to examples (not example groups). Use filters
to
constrain the groups in which to include the module.
1013 1014 1015 1016 |
# File 'lib/rspec/core/configuration.rb', line 1013 def include(mod, *filters) = Metadata.build_hash_from(filters, :warn_about_example_group_filtering) include_or_extend_modules << [:include, mod, ] end |
- (void) inclusion_filter Also known as: filter
Returns the inclusion_filter
. If none has been set, returns an empty
hash.
923 924 925 |
# File 'lib/rspec/core/configuration.rb', line 923 def inclusion_filter filter_manager.inclusions end |
- (void) inclusion_filter=(filter) Also known as: filter=
Clears and reassigns the inclusion_filter
. Set to nil
if you don't
want any inclusion filter at all.
Warning
This overrides any inclusion filters/tags set on the command line or in configuration files.
914 915 916 917 |
# File 'lib/rspec/core/configuration.rb', line 914 def inclusion_filter=(filter) = Metadata.build_hash_from([filter], :warn_about_example_group_filtering) filter_manager.include_only end |
- (void) mock_framework
Returns the configured mock framework adapter module
379 380 381 382 383 384 385 386 387 388 |
# File 'lib/rspec/core/configuration.rb', line 379 def mock_framework if @mock_framework.nil? begin mock_with :rspec rescue LoadError mock_with :nothing end end @mock_framework end |
- (void) mock_framework=(framework)
Delegates to mock_framework=(framework)
391 392 393 |
# File 'lib/rspec/core/configuration.rb', line 391 def mock_framework=(framework) mock_with framework end |
- (void) mock_with(framework)
Sets the mock framework adapter module.
framework
can be a Symbol or a Module.
Given any of :rspec
, :mocha
, :flexmock
, or :rr
, configures the
named framework.
Given :nothing
, configures no framework. Use this if you don't use
any mocking framework to save a little bit of overhead.
Given a Module, includes that module in every example group. The module should adhere to RSpec's mock framework adapter API:
setup_mocks_for_rspec
- called before each example
verify_mocks_for_rspec
- called after each example if the example hasn't yet failed.
Framework should raise an exception when expectations fail
teardown_mocks_for_rspec
- called after verify_mocks_for_rspec (even if there are errors)
If the module responds to configuration
and mock_with
receives a block,
it will yield the configuration object to the block e.g.
config.mock_with OtherMockFrameworkAdapter do |mod_config|
mod_config.custom_setting = true
end
494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 |
# File 'lib/rspec/core/configuration.rb', line 494 def mock_with(framework) framework_module = if framework.is_a?(Module) framework else const_name = MOCKING_ADAPTERS.fetch(framework) do raise ArgumentError, "Unknown mocking framework: #{framework.inspect}. " \ "Pass a module or one of #{MOCKING_ADAPTERS.keys.inspect}" end RSpec::Support.require_rspec_core "mocking_adapters/#{const_name.to_s.downcase}" RSpec::Core::MockingAdapters.const_get(const_name) end new_name, old_name = [framework_module, @mock_framework].map do |mod| mod.respond_to?(:framework_name) ? mod.framework_name : :unnamed end unless new_name == old_name assert_no_example_groups_defined(:mock_framework) end if block_given? raise "#{framework_module} must respond to `configuration` so that mock_with can yield it." unless framework_module.respond_to?(:configuration) yield framework_module.configuration end @mock_framework = framework_module end |
- (void) order=
Sets the default global order and, if order is 'rand:<seed>'
, also sets the seed.
1161 |
# File 'lib/rspec/core/configuration.rb', line 1161 delegate_to_ordering_manager :order= |
- (void) raise_errors_for_deprecations!
Turns deprecation warnings into errors, in order to surface the full backtrace of the call site. This can be useful when you need more context to address a deprecation than the single-line call site normally provided.
1246 1247 1248 |
# File 'lib/rspec/core/configuration.rb', line 1246 def raise_errors_for_deprecations! self.deprecation_stream = Formatters::DeprecationFormatter::RaiseErrorStream.new end |
- (void) register_ordering {|list| ... }
Pass the symbol :global
to set the ordering strategy that
will be used to order the top-level example groups and any example
groups that do not have declared :order
metadata.
Registers a named ordering strategy that can later be
used to order an example group's subgroups by adding
:order => <name>
metadata to the example group.
1187 |
# File 'lib/rspec/core/configuration.rb', line 1187 delegate_to_ordering_manager :register_ordering |
- (void) seed
Seed for random ordering (default: generated randomly each run).
When you run specs with --order random
, RSpec generates a random seed
for the randomization and prints it to the output_stream
(assuming
you're using RSpec's built-in formatters). If you discover an ordering
dependency (i.e. examples fail intermittently depending on order), set
this (on Configuration or on the command line with --seed
) to run
using the same seed while you debug the issue.
We recommend, actually, that you use the command line approach so you don't accidentally leave the seed encoded.
1156 |
# File 'lib/rspec/core/configuration.rb', line 1156 delegate_to_ordering_manager :seed |
- (void) seed=
Sets the seed value and sets the default global ordering to random.
1142 |
# File 'lib/rspec/core/configuration.rb', line 1142 delegate_to_ordering_manager :seed= |
- (void) treat_symbols_as_metadata_keys_with_true_values=(_value)
Deprecated. This config option was added in RSpec 2 to pave the way for this being the default behavior in RSpec 3. Now this option is a no-op.
262 263 264 265 266 |
# File 'lib/rspec/core/configuration.rb', line 262 def (_value) RSpec.deprecate("RSpec::Core::Configuration#treat_symbols_as_metadata_keys_with_true_values=", :message => "RSpec::Core::Configuration#treat_symbols_as_metadata_keys_with_true_values= " \ "is deprecated, it is now set to true as default and setting it to false has no effect.") end |
- (void) warnings=(value)
Set Ruby warnings on or off
1193 1194 1195 |
# File 'lib/rspec/core/configuration.rb', line 1193 def warnings=(value) $VERBOSE = !!value end |
- (Boolean) warnings?
Returns Whether or not ruby warnings are enabled.
1198 1199 1200 |
# File 'lib/rspec/core/configuration.rb', line 1198 def warnings? $VERBOSE end |