Capybara:首次测试超时“未能到达服务器,检查DNS和/或服务器状态”,所有其他测试工作正常

问题描述 投票:4回答:1

我为Spree / Solidus Rails平台保留了几个扩展,由于某种原因,特别是在一个扩展中,我有一个Capybara问题,我似乎无法追查。

一旦我构建了测试环境,第一次运行规范的第一次测试总是失败,具体如下:

Capybara::Poltergeist::StatusFailError:
   Request to 'http://127.0.0.1:52234/products' failed to reach server,
   check DNS and/or server status - Timed out with no open resource requests

所有后续规格都通过。如果我再次运行bundle exec rspec spec,那么所有规格都会通过。

我已经尝试将Capybara超时值增加到超高数字:

RSpec.configure do |config|
  config.include Spree::TestingSupport::CapybaraHelpers, type: :feature
  Capybara.register_driver(:poltergeist) do |app|
    Capybara::Poltergeist::Driver.new app, timeout: 90
  end
  Capybara.javascript_driver = :poltergeist
  Capybara.default_max_wait_time = 90
end

但似乎没有效果。

我的所有Travis构建都在第一次运行的第一个规范上失败(并传递其他所有内容),这使得很难维护项目,因为所有PR看起来都是红色的。

任何想法可能会发生在这里?

ruby-on-rails rspec capybara poltergeist
1个回答
4
投票

当Rails在第一次请求时处理资产管道时,很可能这是失败的。尝试在运行测试之前预编译测试模式资产,或者更多地增加驱动程序注册中的超时。 Capybara.default_max_wait_time根本不应该影响这一点。

© www.soinside.com 2019 - 2024. All rights reserved.