2016-03-28 16 views
0

我试图设置一个基本框架使用水豚,黄瓜和SitePrism,但我不断收到错误,“未初始化的常量SitePrism(NameError)”,当我开始测试。从页面声明的未初始化的常量SitePrism

的Gemfile:

gem 'cucumber', '2.3.3' 
gem 'capybara', '2.6.2' 
gem 'selenium-webdriver', '2.53.0' 
gem 'rspec' 
gem 'site_prism' 
gem 'mime-types', '>2.6', '<2.99.1' 

Env.rb

require 'capybara' 
require 'capybara/rspec' 
require 'capybara/dsl' 
require 'capybara/cucumber' 
require 'selenium-webdriver' 
require 'site_prism' 
require 'cucumber' 

require_rel '../features/pages' 
require_rel '../features/classes' 

World(Capybara::DSL) 
World(Capybara::RSpecMatchers) 

登录页面

class LoginPage < SitePrism::Page 
end 

登录类

class Login 

def initialize 
    @current_page = LoginPage.new 
end 

该错误正在抛出与“class LoginPage < SitePrism :: Page”行。 RubyMine找不到SitePrism声明。我在设置中丢失了什么?

回答

1

你的错误是“需要”有关,但这里是我如何得到它通过工作: https://github.com/thuss/standalone-cucumber

有没有在使用了一段时间的黄瓜,但我看到“页面”的方式在目前实施我的Rails项目:

  • 在“功能/支持/页”
  • 创建一个文件按照命名空间约定
  • 使用的模块,然后通过世界()方法导入。

也许这可能工作:

功能/支持/页/ login_page.rb

module Pages 
module LoginPage 

    class LoginPageObj < SitePrism::Page 
    end 

    def login_obj 
    LoginPageObj.new 
    end 

end 
end 
World(Pages::LoginPage) 

信封文件:

require 'capybara' 
require 'capybara/cucumber' 
require 'site_prism' 


Capybara.configure do |config| 
    config.default_driver = :selenium 
    config.app_host = 'http://www.google.com' 
end 

World(Capybara::DSL) 
World(Capybara::RSpecMatchers) 

通知我怎么没有明确需要任何页面类,它看起来像Cucumber可能需要它吗?

  • 请注意,这是没有RubyMine(我不使用它)。如果它在没有RubyMine的情况下运行,我会指出这一点。
+0

谢谢!您的解决方案奏效我还发现我错过了require_all宝石。我的最终解决方案是移动文件夹并安装require_all gem。 – mdtest