2016-04-13 3 views
1

Мой комплект тестов использует Capybara для тестирования функций с помощью PhantomJS в качестве драйвера для тестирования без головы. Мы получили и работаем над Travis для нашего набора CI, но мы все еще получаем сбои, поскольку пакет работает (он работает отлично на месте). При дальнейшем рассмотрении я понял, что всегда первый тест функции запускается с ошибкой каждый раз, независимо от порядка (наши тесты выполняются в рандомизированном порядке). После того, как он не дает эту ошибку:Ошибка полтергейста при первом испытании Capybara - 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>' 

Мы используем версию 1.9.0 для полтергейста и 2.1.1 для PhantomJS. Каждый тест, который запускается после этого, работает, даже если они зависят от этой стратегии для работы (т. Е. При тестировании проверки подлинности).

Неужели кто-нибудь сталкивался с этой проблемой/имел какую-либо мудрость поделиться ею?

ответ

0

я в конечном итоге решение вопроса, добавив следующий фрагмент кода spec/spec_helper.rb:

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

Что мое понимание установит все Капибара тесты по умолчанию для яваскрипта драйвера от инициализации тестового набора - который исправлена ​​проблема.

+1

Это должно иметь нулевой эффект на проблему, которую вы описываете, поскольку она уже использует javascript_driver (как видно из того, что ошибка исходит от poltergeist). Вы уверены, что не делали других изменений? –

0

Похоже, что ваше приложение слишком долго запускается, либо исследуйте, почему ваше приложение запускается так медленно, либо увеличивают настройку тайм-аута для полтергейста при регистрации его драйвера.

Смежные вопросы