2012-05-09 19 views
8

, belirli bir test grubu üzerinde default_driver değiştirebilirsiniz: Belirli bir salatalık test grubu için bunu yapmak istedim ne olurCapybara'da bir Salatalık testi için test varsayılan sürücüsünü nasıl değiştirirsiniz? <a href="https://github.com/jnicklas/capybara" rel="nofollow">Capybara</a> tarafından sağlanan belgelerinde

describe 'some stuff which requires js', :js => true do 
    it 'will use the default js driver' 
    it 'will switch to one specific driver', :driver => :selenium 
end 

? Bu parametreleri nasıl eklerim?

When /^I do something$/ do 
    fill_in "a_text_box", :with => "stuff" 
    fill_in "another_text_box", :with => "another_thing" 
end 

satırını ekleyin /features/support/env.rb yılında

:

cevap

5

salatalık, ben iki adımda yaptık

Capybara.javascript_driver = :webkit 

Ardından salatalık özelliği, sadece belirli senaryoda önce senaryodan hemen önce @javascript'u ekleyin - şu şekilde:

Bu, o belirli senaryoyu çalıştırdığında javascript sürücüsünü kullanmak için salatalık bildirir.

Bunu Capybara Webkit kullanarak nasıl yaptım - Eminim diğer sürücüler benzer.

+1

Capybara, artık otomatik olarak, @@ javascript' için özel bir durum olmaktan ziyade, senaryodaki bir etiketle eşleşen adlandırılmış bir sürücüye geçer. Örneğin. 'tablet' sürücüsü oluşturup senaryounuzu '@ ​​tablet 'ile etiketlerseniz, o zaman tabletin sürücüsü otomatik olarak kullanılır! –

+0

Yanıtı genişletdiğiniz için teşekkür ederiz. –

+0

Bu, sınamaya özgü sınama yapar ve sonra varsayılana geri döner mi? – Goalie

4
Capybara.current_driver = :webkit # temporarily select different driver 
#... tests ... 
Capybara.use_default_driver  # switch back to default driver 
+1

ben 'Capybara.current_driver koyar mısın =: Ne zaman grup önce ve sonra 'Capybara.user_default_driver' sonra webkit '? – Goalie

0

Salatalık ile bu etiketleri kullanarak elde edebilirsiniz. Örneğin, varsayılan sürücünüz webkitse ancak selenyum ile bazı senaryoları çalıştırmak istiyorsanız, bunu @selenium ile etiketleyebilirsiniz. Eğer diğer bazı sürücü (bu örnekte Başsız krom) geçmek istiyorsanız bu Genel olarak varsayılan

tarafından gem 'selenium-webdriver' ile çalışır, features/support/drivers.rb aşağıdaki kodu yerleştirin:

# features/support/drivers.rb 
Around '@headless_chrome' do |scenario, block| 
    begin 
    Capybara.current_driver = :headless_chrome # temporarily select headless chrome 
    block.call 
    ensure 
    Capybara.use_default_driver    # switch back to default webkit driver 
    end 
end 
İlgili konular

 İlgili konular