Wednesday, 15 May 2013

Trouble getting capybara-screenshot working with RSpec tests -



Trouble getting capybara-screenshot working with RSpec tests -

i've looked through github documentations, looked answers through google searches, , haven't been able find reply why capybara-screenshot isn't saving screenshots on failures.

here's setup have application.

gemfile

group :development, :test gem 'meta_request' gem 'factory_girl_rails' gem 'faker' gem 'rspec-rails', '~> 2.14.1' gem 'capybara' gem 'capybara-webkit' gem 'capybara-screenshot' gem 'cucumber-rails', :require => false gem 'database_cleaner' gem 'selenium-webdriver' gem 'pry' end

gemfile.lock

capybara (2.3.0) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) capybara-screenshot (0.3.19) capybara (>= 1.0, < 3) launchy capybara-webkit (1.1.0) capybara (~> 2.0, >= 2.0.2) json rspec-core (2.14.8) rspec-expectations (2.14.5) diff-lcs (>= 1.1.3, < 2.0) rspec-mocks (2.14.6) rspec-rails (2.14.2) actionpack (>= 3.0) activemodel (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) rspec-core (~> 2.14.0) rspec-expectations (~> 2.14.0) rspec-mocks (~> 2.14.0)

initializers/capybara.rb

capybara.register_driver :selenium_chrome |app| capybara::selenium::driver.new(app, :browser => :chrome) end capybara::screenshot.register_driver(:selenium_chrome) |driver, path| driver.browser.save_screenshot(path) end

spec_helper

require 'rspec/autorun' # include capybara capabilities require 'capybara/rspec' require 'capybara/rails' require 'capybara-screenshot/rspec' # requires supporting ruby files custom matchers , macros, etc, # in spec/support/ , subdirectories. dir[rails.root.join("spec/support/**/*.rb")].each { |f| require f } # checks pending migrations before tests run. # if not using activerecord, can remove line. activerecord::migration.check_pending! if defined?(activerecord::migration) capybara.save_and_open_page_path = "#{rails.root.join("tmp")}/acceptance_tests/" capybara::screenshot.append_timestamp = false capybara::screenshot.register_filename_prefix_formatter(:rspec) |example| "screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//,'')}" end capybara::screenshot.autosave_on_failure = true

home_page_spec.rb

require 'spec_helper' shared_examples 'home_page_tests' |driver| context "when using #{driver.to_s} driver" before capybara.current_driver = driver end describe 'home page', :js => true context 'the user not logged application' 'displays login , sign in buttons' visit root_path expect(page).to have_selector('.btn', text:'sign i') end end end end end describe 'running homepage tests' it_behaves_like 'home_page_tests', :selenium_chrome end

i've tried several variations working, never able screenshot save on failure. can manually phone call screenshot function, given gem supposed autogenerate when test fails, sense wrong. interesting though, able cucumber portion of gem working fine. has else had troubles getting capybara-screenshot working rspec? help appreciated.

i suggest open issue on capybara-screenshot minimum reproducible example.

rspec capybara

No comments:

Post a Comment