0

Я запускаю приложение для рельсов и имею свои тестовые примеры, написанные в capybara. Мне нужно запустить всех тех, у кого есть соус-лаборатории. Я пробовал использовать sauce_whisk, но написанные в capybara не работают.Является ли `sauce_whisk` gem совместимым с capybara

.... it "should google", :run_on_sauce => true do visit "http://google.com" end ... не работает

в то время как

... it "should google too", :run_on_sauce => true do driver = Selenium::WebDriver.for :firefox driver.get "http://google.com" end ... работы.

Может ли кто-нибудь помочь в этом вопросе? Я перешёл по этой ссылке: https://docs.saucelabs.com/tutorials/ruby/

ответ

1

Вот пример работы с использованием sauce_whisk с Capybara.

Вот простой пример использования Capybara с RSpec:

jobname = scenario.full_description 
sessionid = ::Capybara.current_session.driver.browser.session_id 
::Capybara.current_session.driver.quit 

job = SauceWhisk::Jobs.fetch sessionid 
job.name = jobname 
job.save 

if scenario.exception 
    SauceWhisk::Jobs.fail_job sessionid 
else 
    SauceWhisk::Jobs.pass_job sessionid 
end 

И немного более сложная реализация с использованием Огурцы:

require "capybara/cucumber" 
require "selenium/webdriver" 
require 'sauce_whisk' 

Around do |scenario, block| 
    block.call 
    sessionid = ::Capybara.current_session.driver.browser.session_id 
    ::Capybara.current_session.driver.quit 

    jobname = "#{scenario.feature.name} - #{scenario.name}" 

    job = SauceWhisk::Jobs.fetch sessionid 
    job.name = jobname 
    job.passed = scenario.passed? ? true : false 
    job.save 
end 

Before do | scenario | 
    Capybara.register_driver :selenium do |app| 
    capabilities = { 
     :version => "48.0", 
     :browserName => "chrome", 
     :platform => "OS X 10.11" 
    } 

    url = "http://<username>:<access_key>@ondemand.saucelabs.com:80/wd/hub".strip 
    Capybara::Selenium::Driver.new(app, 
            :browser => :remote, :url => url, 
            :desired_capabilities => capabilities) 
    end 
    Capybara.default_wait_time = 10 
    Capybara.current_driver = :selenium 

    job = SauceWhisk::Jobs.fetch ::Capybara.current_session.driver.browser.session_id 
    job.name = "#{scenario.feature.name} - #{scenario.name}" 
    job.save 
end 

Источник:

https://github.com/saucelabs-sample-test-frameworks?utf8=%E2%9C%93&query=Capybara

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