public
Description: command line runner for rspec stories
Homepage:
Clone URL: git://github.com/pd/story.git
story /
name age message
file .gitignore Tue Apr 01 14:06:50 -0700 2008 ignore pkg dir [pd]
file MIT-LICENSE Thu Jun 05 13:32:20 -0700 2008 mit all around [pd]
file README.rdoc Wed Jan 21 08:00:16 -0800 2009 note that this project is dead for good reason ... [pd]
file Rakefile Mon Apr 07 10:08:02 -0700 2008 Bump version to 0.2 since it's completely diffe... [pd]
directory bin/ Sun Apr 06 08:47:58 -0700 2008 Enable options files [pd]
directory lib/ Sun Apr 06 19:56:46 -0700 2008 Collapse multiple '/' chars when inferring grou... [pd]
directory spec/ Sun Apr 06 19:56:46 -0700 2008 Collapse multiple '/' chars when inferring grou... [pd]
directory stories/ Sun Apr 06 09:36:48 -0700 2008 Make it more obvious that steps/*.rb filenames ... [pd]
README.rdoc

story

Unless you are still using the now deprecated rspec story runner, this project is useless to you. Cucumber’s command line interface is more than sufficient to do most of what this project provided.

This project provides an executable, named story, that can be used to run suites of rspec plain text user stories.

The command line runner expects a project layout like so:

  stories/stories/logging_in.story
  stories/stories/feature.story
  stories/stories/feature/topic.story

Given the path stories/stories/feature/topic.story, this story runner will automatically provide it with the following step groups when run:

  feature, topic, feature/topic

The step groups should be loaded from your helper, typically in stories/helper.rb with a line such as:

  Dir['steps/**/*.rb'].each { |f| require f }

To be clear, the file stories/steps/feature/topic.rb might contain something like:

  steps_for('feature/topic') do
    Given('...') do ... end
  end

You are not, however, limited to this naming scheme. It could just as well contain:

  steps_for('when topic within some feature') do ... end

And, provided your stories include that step group name, the steps will be available.

Command line usage

Command line arguments include:

  -R, --rails
    run stories as type RailsStory
    default: --no-rails

  -s, --step-group NAME
    add step groups which will be provided to every story run.
    specify multiple times to add more.
    default: NONE

  -H, --helper
    specify the path to the story helper file to load
    default: stories/helper

  -S, --story-dir
    specifies the root path for your plain text stories; this
    is stripped from path names before inferring step group names.
    default: stories/stories

  -O, --options
    specify a .opts file to load command line arguments from
    default: stories/story.opts is always loaded if present

  -h, --help
    display help

Specifying required steps inside the story

As the first line of a .story file, you can specify steps to be loaded in addition to those deduced from its pathname:

  # +steps: auth, data creation

When run, this story will expect to have step groups named ‘auth’ and ‘data creation’ available in the environment.

Configuration file

If the file stories/story.opts is present, or another file was specified with the command line option -O, then options are loaded from the file in the same manner as spec/spec.opts.

An example story.opts for a Rails project might be:

  --rails
  --step-group
  auth
  --step-group
  webrat

Any lines following a line containing ’—’ will be passed on to rspec’s option parser:

  --rails
  --
  --colour

Will run the stories with colours enabled. This feature is not yet available from the command line, and requires an rspec >= 1.1.4.

Credits

Bryan Helmkamp wrote the original version of this file, script/story, and posted it to the rspec-users mailing list. He gave his okay for the MIT license this thing rocks.