Ruby 未初始化常量(NameError)问题-如何包含类?

Ruby 未初始化常量(NameError)问题-如何包含类?,ruby,cucumber,Ruby,Cucumber,以下是我的目录结构: /features/ninja.feature /features/step_definitions/ninja_steps.rb /src/ninja.rb 当我跑的时候 cucumber 在我的项目的根目录中,我得到一个未初始化的字符串常量Ninja(namererror)错误。我已经确定这是由我的ninja_steps.rb文件中的这一行引起的: @ninja = Ninja.new :belt_level => belt_level class Ninj

以下是我的目录结构:

/features/ninja.feature
/features/step_definitions/ninja_steps.rb
/src/ninja.rb
当我跑的时候

cucumber
在我的项目的根目录中,我得到一个
未初始化的字符串常量Ninja(namererror)
错误。我已经确定这是由我的
ninja_steps.rb
文件中的这一行引起的:

@ninja = Ninja.new :belt_level => belt_level
class Ninja
  def initialize (belt_level)
  end
end
在我的
ninja.rb
文件中:

@ninja = Ninja.new :belt_level => belt_level
class Ninja
  def initialize (belt_level)
  end
end

我需要在ninja_steps.rb文件的顶部添加某种
require
,还是什么?我似乎不知道该怎么做,这样它才不会爆炸。

你有没有尝试在忍者步的顶部添加一个包含?差不多

require File.expand_path(File.dirname(__FILE__) + "/../../src/ninja")

我们应该做到这一点。否则,cucumber根本不知道忍者是什么

从cucumber/aruba这样的项目中得到一个提示,以与比尔·特纳建议的稍有不同的方式加载所有这些文件:


“否则,cucumber根本不知道什么是忍者。”,这对忍者来说再合适不过了。:-)这似乎……太难了。有更好的办法吗?我应该把ninja.rb放在另一个文件夹中,还是定义一些全局包含或其他什么?我必须在每个*_steps.rb文件中执行此操作?Brandon,尝试在命令行中使用-r(或--require标志)。如果你想把这些信息隐藏在你的文件中,这也可能奏效:cucumber-rsrc/ninja.rbfeatures