Class: RSpec::Core::Runner

### Home Classes Methods

### In Files

- lib/rspec/core/runner.rb

### Parent

Object

### Methods

- ::autorun
- ::autorun_disabled?
- ::disable_autorun!
- ::installed_at_exit?
- ::run
- ::running_in_drb?
- ::trap_interrupt

### Class/Module Index

Quicksearch

- RSpec
- RSpec::Core
- RSpec::Core::BacktraceCleaner
- RSpec::Core::BacktraceFormatter
- RSpec::Core::CommandLine
- RSpec::Core::Configuration
- RSpec::Core::Configuration::MustBeConfiguredBeforeExampleGroupsError
- RSpec::Core::ConfigurationOptions
- RSpec::Core::ConstMissing
- RSpec::Core::DRbCommandLine
- RSpec::Core::DSL
- RSpec::Core::Deprecation
- RSpec::Core::DrbOptions
- RSpec::Core::Example
- RSpec::Core::Example::NotPendingExampleFixed
- RSpec::Core::Example::Procsy
- RSpec::Core::ExampleGroup
- RSpec::Core::Extensions
- RSpec::Core::Extensions::InstanceEvalWithArgs
- RSpec::Core::Extensions::ModuleEvalWithArgs
- RSpec::Core::Extensions::Ordered
- RSpec::Core::Extensions::Ordered::ExampleGroups
- RSpec::Core::Extensions::Ordered::Examples
- RSpec::Core::FilterManager
- RSpec::Core::FilterManager::BackwardCompatibility
- RSpec::Core::FilterManager::Describable
- RSpec::Core::Formatters
- RSpec::Core::Formatters::BaseFormatter
- RSpec::Core::Formatters::BaseTextFormatter
- RSpec::Core::Formatters::DeprecationFormatter
- RSpec::Core::Formatters::DocumentationFormatter
- RSpec::Core::Formatters::Helpers
- RSpec::Core::Formatters::HtmlFormatter
- RSpec::Core::Formatters::HtmlPrinter
- RSpec::Core::Formatters::JsonFormatter
- RSpec::Core::Formatters::ProgressFormatter
- RSpec::Core::Formatters::SnippetExtractor
- RSpec::Core::Formatters::SnippetExtractor::NullConverter
- RSpec::Core::Formatters::TextMateFormatter
- RSpec::Core::Hooks
- RSpec::Core::Hooks::AfterAllHook
- RSpec::Core::Hooks::AfterHook
- RSpec::Core::Hooks::AroundHook
- RSpec::Core::Hooks::AroundHookCollection
- RSpec::Core::Hooks::BeforeHook
- RSpec::Core::Hooks::GroupHookCollection
- RSpec::Core::Hooks::Hook
- RSpec::Core::Hooks::HookCollection
- RSpec::Core::Hooks::HookCollectionAliases
- RSpec::Core::Hooks::RegistersGlobals
- RSpec::Core::MemoizedHelpers
- RSpec::Core::MemoizedHelpers::BeforeAllMemoizedHash
- RSpec::Core::MemoizedHelpers::ClassMethods
- RSpec::Core::Metadata
- RSpec::Core::Metadata::ExampleMetadataHash
- RSpec::Core::Metadata::GroupMetadataHash
- RSpec::Core::Metadata::MetadataHash
- RSpec::Core::MetadataHashBuilder
- RSpec::Core::MetadataHashBuilder::Common
- RSpec::Core::MetadataHashBuilder::WithConfigWarning
- RSpec::Core::MetadataHashBuilder::WithDeprecationWarning
- RSpec::Core::MockFrameworkAdapter
- RSpec::Core::Parser
- RSpec::Core::Pending
- RSpec::Core::Pending::PendingDeclaredInExample
- RSpec::Core::Pending::PendingExampleFixedError
- RSpec::Core::ProjectInitializer
- RSpec::Core::RakeTask
- RSpec::Core::Reporter
- RSpec::Core::RubyProject
- RSpec::Core::Runner
- RSpec::Core::SharedContext
- RSpec::Core::SharedExampleGroup
- RSpec::Core::SharedExampleGroup::Collection
- RSpec::Core::SharedExampleGroup::Registry
- RSpec::Core::SharedExampleGroup::TopLevelDSL
- RSpec::Core::Time
- RSpec::Core::Version
- RSpec::Core::World
- RSpec::Rake
- RSpec::Runner
- Autotest
- Autotest::Rspec2
- Kernel

No matching classes.

# RSpec::Core::Runner

### Constants

AT_EXIT_HOOK_BACKTRACE_LINE

### Public Class Methods

autorun() click to toggle source

Register an at_exit hook that runs the suite.

    # File lib/rspec/core/runner.rb, line 6
    def self.autorun
      return if autorun_disabled? || installed_at_exit? || running_in_drb?
      at_exit do
        # Don't bother running any specs and just let the program terminate
        # if we got here due to an unrescued exception (anything other than
        # SystemExit, which is raised when somebody calls Kernel#exit).
        next unless $!.nil? || $!.kind_of?(SystemExit)

        # We got here because either the end of the program was reached or
        # somebody called Kernel#exit.  Run the specs and then override any
        # existing exit status with RSpec's exit status if any specs failed.
        status = run(ARGV, $stderr, $stdout).to_i
        exit status if status != 0
      end
      @installed_at_exit = true
    end

autorun_disabled?() click to toggle source

    # File lib/rspec/core/runner.rb, line 28
    def self.autorun_disabled?
      @autorun_disabled ||= false
    end

disable_autorun!() click to toggle source

    # File lib/rspec/core/runner.rb, line 24
    def self.disable_autorun!
      @autorun_disabled = true
    end

installed_at_exit?() click to toggle source

    # File lib/rspec/core/runner.rb, line 32
    def self.installed_at_exit?
      @installed_at_exit ||= false
    end

run(args, err=$stderr, out=$stdout) click to toggle source

Run a suite of RSpec examples.

This is used internally by RSpec to run a suite, but is available for use by any other automation tool.

If you want to run this multiple times in the same process, and you want files like spec_helper.rb to be reloaded, be sure to load `load` instead of `require`.

#### Parameters

- `args` - an array of command-line-supported arguments

- `err` - error stream (Default: $stderr)

- `out` - output stream (Default: $stdout)

#### Returns

- `Fixnum` - exit status code (0/1)

    # File lib/rspec/core/runner.rb, line 66
    def self.run(args, err=$stderr, out=$stdout)
      trap_interrupt
      options = ConfigurationOptions.new(args)
      options.parse_options

      if options.options[:drb]
        require 'rspec/core/drb_command_line'
        begin
          DRbCommandLine.new(options).run(err, out)
        rescue DRb::DRbConnError
          err.puts "No DRb server is running. Running in local process instead ..."
          CommandLine.new(options).run(err, out)
        end
      else
        CommandLine.new(options).run(err, out)
      end
    ensure
      RSpec.reset
    end

running_in_drb?() click to toggle source

    # File lib/rspec/core/runner.rb, line 36
    def self.running_in_drb?
      defined?(DRb) &&
      (DRb.current_server rescue false) &&
       DRb.current_server.uri =~ /druby\:\/\/127.0.0.1\:/
    end

trap_interrupt() click to toggle source

    # File lib/rspec/core/runner.rb, line 42
    def self.trap_interrupt
      trap('INT') do
        exit!(1) if RSpec.wants_to_quit
        RSpec.wants_to_quit = true
        STDERR.puts "\nExiting... Interrupt again to exit immediately."
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.