Here is my directory structure:
/features/ninja.fe开发者_如何学Cature
/features/step_definitions/ninja_steps.rb
/src/ninja.rb
When I run
cucumber
in the root of my project, I get an uninitialized string constant Ninja (NameError)
error. I've determined it's caused by this line in my ninja_steps.rb
file:
@ninja = Ninja.new :belt_level => belt_level
In my ninja.rb
file:
class Ninja
def initialize (belt_level)
end
end
Do I need to add some sort of require
at the top of my ninja_steps.rb file, or what? I can't seem to figure out how to do that so that it doesn't bomb out.
Did you try adding an include at the top of the ninja_steps? Something like
require File.expand_path(File.dirname(__FILE__) + "/../../src/ninja")
should do the trick. Otherwise, cucumber has no idea what a Ninja is. :)
To load all those files in a slightly different way than Bill Turner suggests, taking a hint from projects like cucumber/aruba:
https://github.com/cucumber/aruba/blob/master/features/support/env.rb
# env.rb
# add your src dir to the load path
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../src')
require 'ninja'
精彩评论