capybara webkit-driver重置?

时间:2012-07-24 15:07:38

标签: ruby-on-rails-3 capybara capybara-webkit

对一些capybara webkit-driver(:js => true)测试有点奇怪。

当测试运行时,测试运行正常,但不知何故,它们会失败。

例如,我有一个类似于

的请求测试
describe "A", :js => true do
  # tests here run fine
end

describe "B", :js => true do
  # tests here fail
end

当我将describe B部分拆分为自己的文件,然后使用bundle exec rspec spec/requests/b_spec.rb运行时 - 测试运行正常并通过。

调试它,看起来当两个部分都在同一个文件中时,webkit驱动程序会以某种方式加载“脏”浏览器会话。尝试page.driver.reset!Capybara.reset_sessions!Capybara.reset!等内容似乎没有任何影响......

当使用旁观者/ spork时这不是问题,因为我可以将测试分成不同的文件并独立运行,但是当使用bundle exec rspec运行全套测试时 - 这些测试失败了......

如何在测试之间正确重置webkit驱动程序/会话?或者我正在追逐错误的问题?

P.S。这些测试没有以任何特定方式访问数据库或改变状态,所以我很确定这是一些与驱动程序相关的问题。

1 个答案:

答案 0 :(得分:1)

有时它只是为弹出的解决方案编写问题。

对我而言,关键是:

  

这些测试没有以任何特定方式访问数据库或改变状态,所以我很确定这是一些与驱动程序相关的问题。

原来状态变化。在我的特定情况下,将OmniAuth设置为test_mode,这需要在上一次测试运行后将其设置回false ...