2016-03-28 19 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