Uninitialized constant Spec:Story


#1

Hi, I’m fairly new to Rails and v. new to RSpec. Think it looks pretty
useful and so I’m trying it out for the first time. I have installed the
rspec-rails gem and created a simple plain text my_story file and
my_story.rb file along the lines described here -
http://www.tomtenthij.co.uk/2008/1/25/rspec-plain-text-story-runner-on-a-fresh-rails-app.

When I run stories/my_story.rb it blows up and the thing that seems most
significant in the error messages is “uninitialized constant Spec::Story
(NameError)” which seems to originate from story_adapter.rb:66, where
the class Spec::Story::runner::ScenarioRunner is defined.

Would appreciate any guidance towards a resolution of this issue.

Thanks,

Mark


#2

On Mon, Oct 6, 2008 at 11:29 AM, Mark T. removed_email_address@domain.invalid
wrote:

Would appreciate any guidance towards a resolution of this issue.

Have you done this:

script/generate rspec


#3

Indeed I have. Just re-ran it to make sure. No change in behavior.

Mark.


#4

Mark T. wrote:

FWIW, I’m running Rails 2.1 on Windows. I have tried running RSpec on
two completely separate Rails installations on different machines and
get the same result.

Mark.

Please post your stories/helper.rb.

-Ben


#5

stories/helper.rb is as follows -


ENV[“RAILS_ENV”] = “test”
require File.expand_path(File.dirname(FILE) +
“/…/config/environment”)
require ‘spec/rails/story_adapter’

dir = File.dirname(FILE)
Dir[File.expand_path("#{dir}/steps/*.rb")].uniq.each do |file|
require file
end

Run a story file relative to the stories directory.

def run_local_story(filename, options={})
run File.join(File.dirname(FILE), filename), options
end

Mark.


#6

Mark T. wrote:

stories/helper.rb is as follows -


ENV[“RAILS_ENV”] = “test”
require File.expand_path(File.dirname(FILE) +
“/…/config/environment”)
require ‘spec/rails/story_adapter’

Hmm… Shot in the dark, but try adding
require ‘spec/story’

before the “require ‘spec/rails/story_adapter’” line.

-Ben


#7

Good shot - that worked! :slight_smile:

Still, I’m curious as to why. Poking around with my very rudimentary
knowledge of how ruby gems work, it looks as if the files that define
Spec::Stories are in the rspec gem, not the rspec-rails gem, and as far
as I can see there is nothing in the skeleton files that get installed
in /stories to require those files. Does this suggest that the line
you recommended should be added to the release? But am I the only person
to have this problem?

Mark.


#8

Mark T. wrote:

Mark.
Well, I lied- I have had that exact same problem before. So it wasn’t
really in the dark, but I wasn’t 100% sure it was the same problem. :slight_smile:
I think either the helper.rb generator changed and removed the
‘spec/story’ line or the rails adapter changed and removed the needed
require it may of once had. So the problem should be fixed in one of
those places IMO. We just had a series of rspec releases and I don’t
know if this would qualify for another emergency fix.

WDYT David or Pat?

-Ben


#9

FWIW, I’m running Rails 2.1 on Windows. I have tried running RSpec on
two completely separate Rails installations on different machines and
get the same result.

Mark.


#10

Mark, what nobody seems to a have mentioned on this thread is that
you’re using a branch of the story runner that’s probably going to be
retired.

There’s no reason why you should know - the rspec.info site is a bit
out of date in this regard.

I’d encourage you to read this:
http://blog.davidchelimsky.net/2008/9/22/cucumber


#11

Wow, more stuff to learn! Thanks for the heads up.

Mark.