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”显示一个页面,该页面实际上包含“未找到”行,没有其他内容。

有谁知道这是什么原因造成的?

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 回答