2017-12-19 4 views
1

Ich verwalte mehrere Erweiterungen für die Spree/Solidus Rails-Plattform (en), und aus irgendeinem Grund auf eine Erweiterung insbesondere Ich habe eine Capybara Frage, die ich nicht scheinen kann, aufzuspüren.Capybara: Erster Test Timeout mit 'Server konnte nicht erreicht werden, DNS- und/oder Serverstatus überprüfen', alle anderen Tests funktionieren einwandfrei

Sobald ich eine Testumgebung, die erste Test des ersten Lauf durch die Spezifikationen bauen nicht immer, mit den folgenden:

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 

Alle nachfolgenden Angaben übergeben. Wenn ich bundle exec rspec specwieder ausführen, dann alle Spezifikationen übergeben.

Ich habe versucht, die Capybara Timeout-Werte zu erhöhen, um super hohe Zahlen:

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 

Aber es scheint keine Wirkung zu haben.

Alle meine Travis-Builds scheitern bei der ersten Spezifikation des ersten Laufs (und geben alles andere weiter), was es schwierig macht, das Projekt zu warten, da alle PRs rot aussehen.

Irgendwelche Ideen, was hier geschehen könnte?

Antwort

2

Am wahrscheinlichsten schlägt dies fehl, wenn Rails die Asset-Pipeline bei der ersten Anforderung verarbeitet. Versuchen Sie, die Testmodus-Assets vor dem Ausführen des Tests vorzukompilieren, oder erhöhen Sie das Zeitlimit in der Treiberregistrierung noch weiter. Die Capybara.default_max_wait_time sollte dies überhaupt nicht beeinflussen.

Verwandte Themen