2011-03-29 55 views
0

我有我的項目中實施的Facebook的Omniauth認證系統。我在瀏覽器中工作良好,直到今天,我已經完成了一整套集成測試,並使用Capybara進行了編寫和傳遞。「未找到」時測試omniauth臉譜認證與水豚

今天,我跑了測試套件,所有相關的測試都失敗了。

的問題,從它在幾乎所有的測試中使用模擬的Facebook(或其他方式)這個輔助模塊莖認證:

module IntegrationSpecHelper 
    def login_with_oauth service 
    visit "/auth/#{service}" 
    save_and_open_page 
    end 
end 

這似乎並沒有工作了,儘管它並2天前,仍然可以在我的開發服務器上運行。 「save_and_open_page」顯示一個字面上包含「Not Found」行的頁面,除此之外沒有別的。

任何人都知道會導致這種情況?

回答

2

最後我自己想到了這一點。

基本上我在我的omniauth配置初始化器中設置基於環境的auth提供程序。我有這樣的設置:

if Rails.env.production? 
    provider :facebook, ... 
    provider :twitter, ... 
    elsif Rails.env.development? 
    provider :facebook, ... 
    provider :twitter, ... 
    end 

正如你可以看到我忘了提供一個測試環境的設置,因此我所有的測試都失敗了。

0

在rails 3中,可以將每個omniauth config初始值設定項放在config/environments文件夾中的相應環境文件中,即development.rb,test.rb和production.rb