Ruby 如何设置使用Cucumber测试的类的路径?
我试着跟随两个书面指南和一个youtube视频(),他们或者跳过了一个重要的步骤(或者只对他们有效),但对我不适用 我已创建以下文件夹结构: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
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的路径?