class Rspec::Core::Runner
def self.autorun
def self.autorun return if installed_at_exit? @installed_at_exit = true at_exit { new.run(ARGV) ? exit(0) : exit(1) } end
def self.installed_at_exit?
def self.installed_at_exit? @installed_at_exit ||= false end
def configuration
def configuration Rspec.configuration end
def reporter
def reporter configuration.formatter end
def require_all_files(configuration)
def require_all_files(configuration) configuration.files_to_run.map {|f| require f } end
def run(args = [])
def run(args = []) Rspec::Core::CommandLineOptions.parse(args).apply(configuration) require_all_files(configuration) total_examples_to_run = Rspec::Core.world.total_examples_to_run old_sync, reporter.output.sync = reporter.output.sync, true if reporter.output.respond_to?(:sync=) suite_success = true reporter_supports_sync = reporter.output.respond_to?(:sync=) old_sync, reporter.output.sync = reporter.output.sync, true if reporter_supports_sync reporter.start(total_examples_to_run) # start the clock start = Time.now Rspec::Core.world.example_groups_to_run.each do |example_group| suite_success &= example_group.run(reporter) end reporter.start_dump(Time.now - start) reporter.dump_failures reporter.dump_summary reporter.dump_pending reporter.close reporter.output.sync = old_sync if reporter_supports_sync suite_success end