diff --git a/lib/jasminerice-runner/runner.rb b/lib/jasminerice-runner/runner.rb index 2ff153c..38570bc 100644 --- a/lib/jasminerice-runner/runner.rb +++ b/lib/jasminerice-runner/runner.rb @@ -12,7 +12,18 @@ def capybara_driver def run Capybara.default_driver = capybara_driver - visit jasmine_url + timeout_retries = 3 + begin + visit jasmine_url + rescue Capybara::Poltergeist::TimeoutError + timeout_retries -= 1 + if timeout_retries < 0 + raise + else + restart_phantomjs + retry + end + end print "Running jasmine specs" wait_for_finished @@ -37,6 +48,22 @@ def jasmine_url url end + def restart_phantomjs + puts "-> Restarting phantomjs: iterating through capybara sessions..." + session_pool = Capybara.send('session_pool') + session_pool.each do |mode,session| + msg = " => #{mode} -- " + driver = session.driver + if driver.is_a?(Capybara::Poltergeist::Driver) + msg += "restarting" + driver.restart + else + msg += "not poltergeist: #{driver.class}" + end + puts msg + end + end + def get_results { passed: page.evaluate_script("window.jasmineRiceReporter.results.passedCount"), diff --git a/lib/jasminerice-runner/version.rb b/lib/jasminerice-runner/version.rb index 811f448..5cdeea5 100644 --- a/lib/jasminerice-runner/version.rb +++ b/lib/jasminerice-runner/version.rb @@ -1,5 +1,5 @@ module Jasminerice class Runner - VERSION = "0.0.4" + VERSION = "0.0.5" end -end \ No newline at end of file +end