Ruby 如何设置使用Cucumber测试的类的路径?

Ruby 如何设置使用Cucumber测试的类的路径?,ruby,windows,cucumber,Ruby,Windows,Cucumber,我试着跟随两个书面指南和一个youtube视频(),他们或者跳过了一个重要的步骤(或者只对他们有效),但对我不适用 我已创建以下文件夹结构: RubyBots\ features\ step_definitions\ creating_a_vehicle_for_an_ai_bot_steps.rb support\ env.rb creating_a_vehicle_for_an_ai_bot.feature vehicle.rb v

我试着跟随两个书面指南和一个youtube视频(),他们或者跳过了一个重要的步骤(或者只对他们有效),但对我不适用

我已创建以下文件夹结构:

RubyBots\
  features\
    step_definitions\
      creating_a_vehicle_for_an_ai_bot_steps.rb
    support\
      env.rb
    creating_a_vehicle_for_an_ai_bot.feature
  vehicle.rb
  vehicle_factory.rb
RubyBots/
  features/
    step_definitions/
      creating_a_vehicle_for_an_ai_bot_steps.rb
    support/
      env.rb
    creating_a_vehicle_for_an_ai_bot.feature
为机器人步骤创建车辆的内容。rb:

Given /^I have vehicle factory$/ do
  @vehicle_factory = VehicleFactory.new
end

When /^I use it to build a basic vehicle$/ do
  @new_vehicle = @vehicle_factory.build
end

Then /^I should have receive a basic vehicle$/ do
  #test @new_vechile
end
class VehicleFactory
    def initialize(name)
        p name
    end
end
车辆工厂.rb的内容:

Given /^I have vehicle factory$/ do
  @vehicle_factory = VehicleFactory.new
end

When /^I use it to build a basic vehicle$/ do
  @new_vehicle = @vehicle_factory.build
end

Then /^I should have receive a basic vehicle$/ do
  #test @new_vechile
end
class VehicleFactory
    def initialize(name)
        p name
    end
end
env.rb
文件的内容:

require 'vehicle_factory'
require 'vehicle'
我从
RubyBots
目录内的CMD窗口中执行
Cucumber
(无参数),收到以下错误:

no such file to load -- vehicle_factory (LoadError)
<internal:lib/rubygems/custom_require>:29:in `require'
<internal:lib/rubygems/custom_require>:29:in `require'
D:/Code/RubyBots/features/support/env.rb:1:in `<top (required)>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/rb_support/rb_language.rb:143:in `load'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/rb_support/rb_language.rb:143:in `load_code_file'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/runtime/support_code.rb:176:in `load_file'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/runtime/support_code.rb:78:in `block in load_files!'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/runtime/support_code.rb:77:in `each'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/runtime/support_code.rb:77:in `load_files!'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/runtime.rb:137:in `load_step_definitions'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/runtime.rb:39:in `run!'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/cli/main.rb:43:in `execute!'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/lib/cucumber/cli/main.rb:20:in `execute'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/cucumber-1.0.1/bin/cucumber:14:in `<top (required)>'
C:/Ruby192/bin/cucumber:19:in `load'
C:/Ruby192/bin/cucumber:19:in `<main>'
我已经尝试了我能想到的一切,我的谷歌fu让我失望了——我希望这不是一件小事,这样我就不会感到尴尬,但很容易修复,这样我就可以继续前进了!:)


谢谢你的帮助

您的类被称为
VehicleFactory
,但您正在尝试调用
vehicle\u factory.new
中创建一个用于创建一个机器人的车辆.rb

另外,我相信Cucumber需要一个特定的目录结构:

RubyBots\
  features\
    step_definitions\
      creating_a_vehicle_for_an_ai_bot_steps.rb
    support\
      env.rb
    creating_a_vehicle_for_an_ai_bot.feature
  vehicle.rb
  vehicle_factory.rb
RubyBots/
  features/
    step_definitions/
      creating_a_vehicle_for_an_ai_bot_steps.rb
    support/
      env.rb
    creating_a_vehicle_for_an_ai_bot.feature

您需要适当地从env.rb获取您自己的文件。Ruby不会为你找到任何路径。中介绍了一种根据符号名自动要求文件的方法(Rails的方式)(它依赖于ActiveSupport 2.3,但对于当前版本应该类似)。

谢谢!我现在已经纠正了这个错误,但我仍然有一个类似的问题。当我将上面列出的
env.rb
文件放置到位时,我会得到上面列出的相同错误(当
env.rb
放置到位时),当
env.rb
文件不在那里时,我会得到
未初始化的常量对象::VehicleFactory(NameError)
就在Cucumber输出中的“给定我有车辆工厂”行下方。我现在已经用准确的错误更新了问题。我一直在研究这个错误,但它似乎与找不到类有关?(顺便说一句,我已经起床24个多小时了,快要睡觉了——如果这一切都是因为愚蠢的错误,那么很抱歉)。我已经更新了答案。我认为你需要坚持默认的目录结构。再次感谢@Alex的帮助。我已经更新了目录结构(以及上面列出的问题,以反映这一点),但我仍然有这个问题。问题是最新的,错误消息也有轻微变化。任何进一步的帮助都将不胜感激。我只需要让一个场景运行起来,我知道我会以很好的速度恢复和运行!!您是否在env.rb文件中更新了vehicle.rb和vehicle_factory.rb的路径?