0

私のプロジェクトには Facebook Omniauth 認証システムが実装されています。私はブラウザーで問題なく動作し、今日まで、完全な統合テストのセットを記述し、Capybara を使用して合格していました。

しかし今日、テスト スイートを実行したところ、関連するすべてのテストが失敗しました。

この問題は、ほとんどすべてのテストで facebook (またはそれ以外) の認証をシミュレートするために使用されるこのヘルパー モジュールに起因します。

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

これは 2 日前に機能したにもかかわらず、もう機能していないようで、私の開発サーバーではまだ機能しています。「save_and_open_page」は、文字どおり「Not Found」行だけを含むページを表示します。

誰がこれを引き起こすのか知っていますか?

4

2 に答える 2

2

これは最終的に自分で考え出しました。

基本的に、omniauth 構成初期化子の環境に基づいて認証プロバイダーを設定していました。私はこの設定をしています:

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

ご覧のとおり、テスト環境の設定を提供するのを忘れていたため、すべてのテストが失敗していました。

于 2011-04-11T18:14:17.820 に答える
0

Rails 3 では、各 omniauth 構成初期化子を config/environments フォルダー内のそれぞれの環境ファイル (development.rb、test.rb、および production.rb) に配置できます。

于 2011-05-07T04:05:24.587 に答える