/vendor/bundle/jruby/2.1/gems/rspec-core-2.14.8/lib/rspec/core/command_line.rb

https://github.com/delowong/logstash · Ruby · 36 lines · 30 code · 2 blank · 4 comment · 1 complexity · bfbd4eb873bf318a72d5865fe7cdb2a7 MD5 · raw file

  1. module RSpec
  2. module Core
  3. class CommandLine
  4. def initialize(options, configuration=RSpec::configuration, world=RSpec::world)
  5. if Array === options
  6. options = ConfigurationOptions.new(options)
  7. options.parse_options
  8. end
  9. @options = options
  10. @configuration = configuration
  11. @world = world
  12. end
  13. # Configures and runs a suite
  14. #
  15. # @param [IO] err
  16. # @param [IO] out
  17. def run(err, out)
  18. @configuration.error_stream = err
  19. @configuration.output_stream ||= out
  20. @options.configure(@configuration)
  21. @configuration.load_spec_files
  22. @world.announce_filters
  23. @configuration.reporter.report(@world.example_count, @configuration.randomize? ? @configuration.seed : nil) do |reporter|
  24. begin
  25. @configuration.run_hook(:before, :suite)
  26. @world.example_groups.ordered.map {|g| g.run(reporter)}.all? ? 0 : @configuration.failure_exit_code
  27. ensure
  28. @configuration.run_hook(:after, :suite)
  29. end
  30. end
  31. end
  32. end
  33. end
  34. end