Capybara:首次测试超时“未能到达服务器,检查DNS和/或服务器状态”,所有其他测试工作正常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Capybara:首次测试超时“未能到达服务器,检查DNS和/或服务器状态”,所有其他测试工作正常相关的知识,希望对你有一定的参考价值。
我为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看起来都是红色的。
任何想法可能会发生在这里?
答案
当Rails在第一次请求时处理资产管道时,很可能这是失败的。尝试在运行测试之前预编译测试模式资产,或者更多地增加驱动程序注册中的超时。 Capybara.default_max_wait_time根本不应该影响这一点。
以上是关于Capybara:首次测试超时“未能到达服务器,检查DNS和/或服务器状态”,所有其他测试工作正常的主要内容,如果未能解决你的问题,请参考以下文章
使用 Quilljs 和 capybara-webkit 进行 Capybara 测试