2015-09-27 69 views
4

我在我的rails項目中使用rspec/capybara進行測試,這與默認驅動程序正常工作。但是當我切換到webkit或硒時,我會在每次發出請求後退出。 此代碼工作正常,我看到了登錄頁面的2倍:rails,rspec,水豚,webkit/selenium,devise,在每次請求後註銷

require 'rails_helper' 

feature 'test' do 
    scenario 'this' do 
    user = FactoryGirl.create :user 
    login_as(user) 
    visit root_path 
    save_and_open_page 
    visit root_path 
    save_and_open_page 
    end 
end 

當我設置的WebKit或硒作爲驅動程序僅在第一頁中記錄的版本,在第二頁上我登錄out:

require 'rails_helper' 

feature 'test' do 
    scenario 'this', driver: :webkit do 
    user = FactoryGirl.create :user 
    login_as(user) 
    visit root_path 
    save_and_open_page 
    visit root_path 
    save_and_open_page 
    end 
end 

我該如何解決這個問題?

+1

你試過拖拽log/test.log文件以查看測試期間進入的請求?如果是這樣,你可以分享嗎? –

+0

我也可以回答。該指定測試的日誌/測試日誌。 http://pastie.org/10447426 - 看起來很正常 –

+0

水豚調試輸出沒有顯示任何有用的信息或給我們提供任何信息爲什麼他應該放鬆會話 –

回答

1

我在此完全相同的問題,並最終過這個問題,他們用幾乎同樣的問題:Why is Capybara discarding my session after one event?

的解決方案是包括片段在rails_helper發現here

class ActiveRecord::Base 
    mattr_accessor :shared_connection 
    @@shared_connection = nil 

    def self.connection 
    @@shared_connection || retrieve_connection 
    end 
end 

# Forces all threads to share the same connection. This works on 
# Capybara because it starts the web server in a thread. 
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection