+++ /dev/null
-require 'spec/story/runner/scenario_collector.rb'
-require 'spec/story/runner/scenario_runner.rb'
-require 'spec/story/runner/story_runner.rb'
-require 'spec/story/runner/story_parser.rb'
-require 'spec/story/runner/story_mediator.rb'
-require 'spec/story/runner/plain_text_story_runner.rb'
-
-module Spec
- module Story
- module Runner
- class << self
- def run_options # :nodoc:
- @run_options ||= ::Spec::Runner::OptionParser.parse(ARGV, $stderr, $stdout)
- end
-
- def story_runner # :nodoc:
- unless @story_runner
- @story_runner = StoryRunner.new(scenario_runner, world_creator)
- run_options.story_formatters.each do |formatter|
- register_listener(formatter)
- end
- Runner.register_exit_hook
- end
- @story_runner
- end
-
- def scenario_runner # :nodoc:
- @scenario_runner ||= ScenarioRunner.new
- end
-
- def world_creator # :nodoc:
- @world_creator ||= World
- end
-
- # Use this to register a customer output formatter.
- def register_listener(listener)
- story_runner.add_listener(listener) # run_started, story_started, story_ended, #run_ended
- world_creator.add_listener(listener) # found_scenario, step_succeeded, step_failed, step_failed
- scenario_runner.add_listener(listener) # scenario_started, scenario_succeeded, scenario_pending, scenario_failed
- end
-
- def register_exit_hook # :nodoc:
- # TODO - when story runner uses test/unit runners like example runner does we can kill
- # this and also the assorted Kernel.stub!(:at_exit) in examples
- at_exit do
- Runner.story_runner.run_stories unless $!
- end
- # TODO exit with non-zero status if run fails
- end
-
- def dry_run
- run_options.dry_run
- end
-
- end
- end
- end
-end