2016-04-18 17 views
2


Ich führe Tests für eine Rails App mit Capybara, Cucumber und Selenium Webdriver (Ruby) durch. Ich habe eine Frage: Warum schließt Capybara den Browser nicht, wenn Net :: ReadTimeout passiert, obwohl ich einen Haken hatte, der den Browser auffordert, nach jedem Testszenario zu beenden? Wie kann ich es zwingen, den Browser zu schließen, wenn Net :: ReadTimeout auftritt? Dies ist
meine hooks.rb
Capybara schließt den Browser nicht, wenn der Net :: ReadTimeout Fehler auftritt

After do |scenario| 
    if scenario.failed? 
    page.driver.browser.save_screenshot("#{scenario.__id__}.png") 
    end 
    Capybara.current_session.driver.browser.manage.delete_all_cookies 
    Capybara.current_session.driver.quit 
end 

Antwort

0

ich eine andere Lösung, die für mich funktioniert.

  1. gem capybara-screenshot

  2. konfigurieren Sie Ihre spec_helper.rb in einer solchen Art und Weise hinzufügen:

Capybara::Screenshot.autosave_on_failure = true 

Capybara::Screenshot.prune_strategy = :keep_last_run 

Capybara.default_wait_time = 60 
+0

auch können Sie alle scheiterten Szenarien Screenshots und nennen Sie es speichern, wie Sie –

+0

Dank möchten, aber Ich kann gescheiterte Screenshots speichern. Aber in diesem Fall, wenn Net :: ReadTimeout passiert, ist das Szenario gescheitert, ohne den Browser zu schließen. Das ist das Problem. –

+0

James, deshalb biete ich Ihnen Capybara.screenshot gem. Ich hatte das gleiche Problem wie zuvor und entschied mich für Juwel. –

Verwandte Themen