在升级到Capybara 2.1和Poltergeist 1.5.0后,我们在JS测试中获得了“/my/image.png”的ActionController :: RoutingError

时间:2014-03-14 15:15:13

标签: ruby-on-rails capybara phantomjs poltergeist

我们从Capybara 1.1.4和Poltergeist 1.0.2升级。 phantomjs始终保持1.8.1版本。

JS测试用例如, <img src="/my/image.png">会因上述错误而失败,之前他们没有失败。

该文件确实不存在。这是为测试生成的虚假路径,并且将其制作成真实文件可遗憾地不是微不足道的(但最终应该完成)。

1 个答案:

答案 0 :(得分:1)

我们的解决方案/解决方法是配置Poltergeist不渲染图像:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, phantomjs_options: ["--load-images=no"])
end

这样,它不会发出这些请求,也不会触发这些错误。

据推测,旧版的Capybara或Poltergeist以某种方式吞噬了这种类型的错误 - 可能是因为没有加载图像,也许是以其他方式。

这不是一个优雅的解决方案,但它似乎并不比以前发生的任何隐性吞咽更糟糕。