Ruby on rails 3 水豚网络工具包驱动程序重置?
一些capybara webkit驱动程序(Ruby on rails 3 水豚网络工具包驱动程序重置?,ruby-on-rails-3,capybara,capybara-webkit,Ruby On Rails 3,Capybara,Capybara Webkit,一些capybara webkit驱动程序(:js=>true)测试有点奇怪 测试在自己运行时运行良好,但不知何故,按顺序,它们失败了 例如,我有一个如下的请求测试 describe "A", :js => true do # tests here run fine end describe "B", :js => true do # tests here fail end 当我将description B节拆分到它自己的文件中,并使用bundle exec rspec
:js=>true
)测试有点奇怪
测试在自己运行时运行良好,但不知何故,按顺序,它们失败了
例如,我有一个如下的请求测试
describe "A", :js => true do
# tests here run fine
end
describe "B", :js => true do
# tests here fail
end
当我将description B
节拆分到它自己的文件中,并使用bundle exec rspec spec/requests/B_spec.rb
运行它时,测试运行良好并通过
通过调试,看起来当两个部分位于同一个文件中时,webkit驱动程序以某种方式加载了一个“脏”浏览器会话。尝试page.driver.reset代码>或Capybara.reset\u会话代码>或Capybara.reset代码>似乎没有任何效果
当使用旁观者/spork时,这不是一个问题,因为我可以将测试拆分为不同的文件并独立运行它们,但是当使用bundle exec rspec
运行全套测试时-这些测试失败
如何在测试之间正确重置webkit驱动程序/会话?或者我正在寻找错误的问题
p、 这些测试不会以任何特定方式影响数据库或改变状态,因此我很确定这是与驱动程序相关的问题。有时,编写问题以弹出解决方案会有所帮助
对我来说,关键是:
这些测试不会影响数据库或以任何特定方式改变状态,因此我很确定这是与驱动程序相关的问题
结果是状态发生了变化。在我的特殊情况下,将OmniAuth
设置为test\u模式
,这需要在上一个测试运行后将其设置回false