Phantomjs 第一次水豚试验中的极性误差-特拉维斯

Phantomjs 第一次水豚试验中的极性误差-特拉维斯,phantomjs,capybara,travis-ci,poltergeist,Phantomjs,Capybara,Travis Ci,Poltergeist,我的测试套件使用Capybara进行特性测试,使用PhantomJS作为无头测试的驱动程序。我们已经开始为我们的CI套件开发Travis,但随着套件的运行,我们仍然会遇到失败(它在本地运行得非常好)。经过进一步的检查,我意识到每次运行的第一个功能测试总是失败的,无论顺序如何(我们的测试是以随机顺序执行的)。失败后,会出现以下错误: Capybara::Poltergeist::StatusFailError: Request to 'http://127.0.0.1:52455/#/log

我的测试套件使用Capybara进行特性测试,使用PhantomJS作为无头测试的驱动程序。我们已经开始为我们的CI套件开发Travis,但随着套件的运行,我们仍然会遇到失败(它在本地运行得非常好)。经过进一步的检查,我意识到每次运行的第一个功能测试总是失败的,无论顺序如何(我们的测试是以随机顺序执行的)。失败后,会出现以下错误:

Capybara::Poltergeist::StatusFailError:
   Request to 'http://127.0.0.1:52455/#/login' failed to reach server, check DNS and/or server status
   # /home/travis/.rvm/gems/ruby-2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/browser.rb:351:in `command'
   # /home/travis/.rvm/gems/ruby-2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/browser.rb:34:in `visit'
   # /home/travis/.rvm/gems/ruby-2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/driver.rb:95:in `visit'
   # /home/travis/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.0/lib/capybara/session.rb:233:in `visit'
   # /home/travis/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.0/lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'
Capybara::Poltergeist::StatusFailError:
请求http://127.0.0.1:52455/#/login'无法访问服务器,请检查DNS和/或服务器状态
#/home/travis/.rvm/gems/ruby-2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/browser.rb:351:in'command'
#/home/travis/.rvm/gems/ruby-2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/browser.rb:34:in“访问”
#/home/travis/.rvm/gems/ruby-2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/driver.rb:95:in“访问”
#/home/travis/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.0/lib/capybara/session.rb:233:在“访问”中
#/home/travis/.rvm/gems/ruby-2.3.0/gems/capybara-2.7.0/lib/capybara/dsl.rb:52:in `块(2层)in'
我们使用的是1.9.0版的恶鬼,2.1.1版的幻影。在此之后运行的每个测试都可以工作,即使它们依赖于此策略工作(即,在测试身份验证时)


有人遇到过这个问题吗/有什么智慧可以分享吗?

听起来你的应用程序启动时间太长,要么调查一下为什么你的应用程序启动这么慢,要么在驱动程序注册中增加poltergeist的超时设置。

听起来你的应用程序启动时间太长,要么调查你的应用程序启动如此缓慢的原因,要么在其驱动程序注册中增加poltergeist的超时设置。

我最终通过向
spec/spec\u helper.rb添加以下代码位解决了这个问题:

config.before(:suite) do
  Capybara.current_driver = Capybara.javascript_driver
end

我的理解是,从测试套件的初始化开始,将所有的Capybara测试设置为默认的javascript驱动程序,这完美地解决了这个问题。

我通过向
spec/spec\u helper.rb
添加以下代码来解决这个问题:

config.before(:suite) do
  Capybara.current_driver = Capybara.javascript_driver
end

我的理解是,从测试套件的初始化开始,将所有的Capybara测试设置为默认的javascript驱动程序-这完美地解决了问题。

这对您描述的问题应该没有任何影响,因为它已经在使用javascript_驱动程序(错误来自poltergeist的事实表明)。您确定没有做其他更改吗?这对您描述的问题没有任何影响,因为它已经在使用javascript_驱动程序(错误来自poltergeist)。您确定没有做其他更改吗?