2016-03-28 16 views
0

Capybara、Cucumber、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) 

のEnvファイル:私は明示的に持っていなかったか

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) 

お知らせ任意のページクラスを必要とする、それはキュウリがあなたのためにそれを必要とするかもしれないように見える?

  • これはRubyMineなし(使用しないでください)です。それがRubyMineなしで動作するならば、私はそれを指すつもりです。
+0

ありがとうございました!ソリューションが機能しました。私もrequire_allの宝石が欠けていたことがわかりました。私の最終的な解決策は、フォルダを移動し、require_all宝石がインストールされていることでした。 – mdtest