对一些 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!
似乎没有任何效果......
使用 spectator/spork 时这不是问题,因为我可以将测试拆分为不同的文件并独立运行它们,但是当使用 - 这些测试运行全套测试时bundle exec rspec
...
如何在测试之间正确重置 webkit 驱动程序/会话?还是我在追逐错误的问题?
ps 这些测试没有以任何特定方式访问数据库或改变状态,所以我很确定这是一些与驱动程序相关的问题。