2017-02-21 1 views
0

У меня богатый интерфейс в моем приложении. Некоторые из моих тестов не очень хорошо работают с poltergeist, из-за анимации и запросов AJAX, но отлично работают с селеном.Как использовать селен и полтергейст вместе в RSpec?

Как я могу использовать их вместе в одном проекте и в одном тестовом сеансе?

+0

Спасибо, но я хочу запустить его на одном тестовом сеансе. –

ответ

2

Если вы используете стандартную конфигурацию RSpec с Капибарой (требуется «Капибары/RSpec»), то вы можете переопределить нормальный драйвер, который будет использоваться для данного теста с :driver метаданными

it "should do something", driver: :selenium do 
    # will use the selenium driver for this test 
end 

it "should do something else", driver: :poltergeist do 
    # will use the poltergeist driver for this test 
end 

, которые могли бы также указываются в приложении, если вы хотите, чтобы вся функция использовала конкретный драйвер.

feature "blah balh", driver: :selenium do 
    # all scenarios here would use the selenium driver unless overridden with their own :driver metadata 
+0

Спасибо. Это идеальное решение! –

0

Я нашел решение.

создания макросов в спецификации/поддержки/selenium_macros.rb:

module SeleniumMacros 
    def use_selenium_webdriver 
    before(:all) do 
     Capybara.javascript_driver = :selenium 
     Capybara.current_driver = :selenium 
    end 

    after(:all) do 
     Capybara.current_driver = :poltergeist 
     Capybara.javascript_driver = :poltergeist 
    end 
    end 
end 

спецификации/rails_helper.rb

RSpec.configure do |config| 
    config.extend SeleniumMacros, type: :feature # add macros for acceptance tests 

используя пример спецификации/особенности/example_feature_spec.rb

feature 'Add files to question' do 

    use_selenium_webdriver 

эта функция будет работать с селеном, после того как она будет выполнена, она активируется полтергейст webdriver.

P.S. Извините за мой английский.

+0

Способность уже встроена в обычную конфигурацию RSpec, поэтому это не нужно - см. Мой ответ –

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