Ruby on rails Cucumber和Capybara一直说我有一个未定义的方法叫做'visit';

Ruby on rails Cucumber和Capybara一直说我有一个未定义的方法叫做'visit';,ruby-on-rails,cucumber,automated-tests,capybara,Ruby On Rails,Cucumber,Automated Tests,Capybara,当我试图运行Wayne Ye从Instant Cucumber BDD How to提供给我的示例时,我不断收到错误消息未定义的方法'visit'(NoMethodError)。我安装了很多gem,我想我已经在我的项目文件夹中运行了所有必要的命令 我已安装内容的安装说明如下: gem安装程序 gem安装绑定器 安装黄瓜轨 gem安装启动 gem安装数据库清理器 gem安装工厂女孩轨道 gem安装webmock 宝石装泡菜 gem安装spork导轨 gem安装nokogiri gem安装ffi g

当我试图运行Wayne Ye从Instant Cucumber BDD How to提供给我的示例时,我不断收到错误消息
未定义的方法'visit'(NoMethodError)
。我安装了很多gem,我想我已经在我的项目文件夹中运行了所有必要的命令

我已安装内容的安装说明如下:

gem安装程序
gem安装绑定器
安装黄瓜轨
gem安装启动
gem安装数据库清理器
gem安装工厂女孩轨道
gem安装webmock
宝石装泡菜
gem安装spork导轨
gem安装nokogiri
gem安装ffi
gem安装水豚
chdirc:\DevKit
ruby dk.rb init
ruby dk.rb安装
gem安装json
gem安装sqlite3
黄瓜
绑定器初始化
捆绑机安装
我试图运行的示例来自于书中,如下所示

亚马逊特色

功能:在亚马逊购物
作为互联网用户
我想在亚马逊上搜索东西
这样我就可以选择和购买我喜欢的东西
@javascript
场景:搜索棒球手套
鉴于我在亚马逊主页上
当我在搜索框中输入“棒球手套”时
我点击“开始”按钮
然后我会看到一份棒球手套相关结果的清单
步骤定义/amazon\u search\u steps.rb

当我运行此命令时,会收到以下错误消息

在线查看,解决方案似乎是将以下行添加到我的
spec\u helper.rb
文件中,但我不知道是哪一行,而且我尝试过的所有行都不起作用

config.include Capybara::DSL
编辑:根据请求编辑我的env.rb文件

完整路径为C:\Ruby22-x64\lib\ruby\gems\2.2.0\gems\cucumber-rails-1.4.3\features\support\env.rb

$:.unshift(File.dirname(__FILE__) + '/../../lib')
require 'rubygems'
require 'bundler/setup'
require 'rspec/expectations'
require 'aruba/cucumber'
if(ENV['ARUBA_REPORT_DIR'])
  # Override reporting behaviour so we don't document all files, only the ones
  # that have been created after @aruba_report_start (a Time object). This is
  # given a value after the Rails app is generated (see cucumber_rails_steps.rb)
  module Aruba
    module Reporting
      def children(dir)
        children = Dir["#{dir}/*"].sort

        # include
        children = children.select do |child|
          File.directory?(child) ||
          (@aruba_report_start && File.stat(child).mtime > @aruba_report_start)
    end

        # exclude
        children = children.reject do |child|
          child =~ /Gemfile/ ||
          child =~ /\.log$/
        end

        children
      end
    end
  end
end

为了便于阅读,我将这个问题格式化;在本例中,这主要意味着将示例格式化为代码块。干净的格式往往会吸引更多的答案,所以希望这会对你有所帮助。将来,您将受益于自己学习这种格式,您可以阅读有关的内容。spec_helper.rb用于RSpec。您正在使用Cucumber,它是在env.rb中配置的。显示该文件。谢谢Dan,还是StackOverflow的新手。Dave我已经添加了我的env.rb。为了给这个添加一些结尾,我无法找到需要配置的正确配置文件,最后我放弃了这个项目。
$:.unshift(File.dirname(__FILE__) + '/../../lib')
require 'rubygems'
require 'bundler/setup'
require 'rspec/expectations'
require 'aruba/cucumber'
if(ENV['ARUBA_REPORT_DIR'])
  # Override reporting behaviour so we don't document all files, only the ones
  # that have been created after @aruba_report_start (a Time object). This is
  # given a value after the Rails app is generated (see cucumber_rails_steps.rb)
  module Aruba
    module Reporting
      def children(dir)
        children = Dir["#{dir}/*"].sort

        # include
        children = children.select do |child|
          File.directory?(child) ||
          (@aruba_report_start && File.stat(child).mtime > @aruba_report_start)
    end

        # exclude
        children = children.reject do |child|
          child =~ /Gemfile/ ||
          child =~ /\.log$/
        end

        children
      end
    end
  end
end