Skip to content
Browse files

Set $stderr and $stdout as defaults for RSpec::Core::Runner.run

- See #367.
  • Loading branch information...
1 parent 67ab2ac commit 73b871429e1a383e6929e6b4764ff7c19f626a71 @dchelimsky dchelimsky committed May 8, 2011
Showing with 28 additions and 11 deletions.
  1. +28 −11 lib/rspec/core/runner.rb
View
39 lib/rspec/core/runner.rb
@@ -4,39 +4,56 @@ module RSpec
module Core
class Runner
+ # Register an at_exit hook that runs the suite.
def self.autorun
return if autorun_disabled? || installed_at_exit? || running_in_drb?
@installed_at_exit = true
at_exit { exit(run(ARGV, $stderr, $stdout)) }
end
AT_EXIT_HOOK_BACKTRACE_LINE = "#{__FILE__}:#{__LINE__ - 2}:in `autorun'"
- def self.autorun_disabled?
- @autorun_disabled ||= false
- end
-
def self.disable_autorun!
@autorun_disabled = true
end
- def self.installed_at_exit?
+ def self.autorun_disabled? # :nodoc:
+ @autorun_disabled ||= false
+ end
+
+ def self.installed_at_exit? # :nodoc:
@installed_at_exit ||= false
end
- def self.running_in_drb?
- (DRb.current_server rescue false) &&
+ def self.running_in_drb? # :nodoc:
+ (DRb.current_server rescue false) &&
DRb.current_server.uri =~ /druby\:\/\/127.0.0.1\:/
end
- def self.trap_interrupt
+ def self.trap_interrupt # :nodoc:
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
- def self.run(args, err, out)
+ # 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)
+ def self.run(args, err=$stderr, out=$stdout)
trap_interrupt
options = ConfigurationOptions.new(args)
options.parse_options
@@ -53,11 +70,11 @@ def self.run(args, err, out)
end
end
- def self.run_over_drb(options, err, out)
+ def self.run_over_drb(options, err, out) # :nodoc:
DRbCommandLine.new(options).run(err, out)
end
- def self.run_in_process(options, err, out)
+ def self.run_in_process(options, err, out) # :nodoc:
CommandLine.new(options, RSpec::configuration, RSpec::world).run(err, out)
end

0 comments on commit 73b8714

Please sign in to comment.
Something went wrong with that request. Please try again.