如何在RSpec中一起使用硒和吵闹?

时间:2017-02-21 18:48:17

标签: ruby-on-rails selenium selenium-webdriver poltergeist

我的应用程序中有一个丰富的前端。由于动画和AJAX请求,我的一些测试对poltergeist不适用,但是对于selenium工作正常。

如何在一个项目和一个测试环节中一起使用它们?

2 个答案:

答案 0 :(得分:3)

如果您使用Capybara的标准RSpec配置(需要'capybara / 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

答案 1 :(得分:0)

我找到了解决方案。

在spec / support / 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

此功能将与selenium一起使用,在执行后会激活poltergeist webdriver。

P.S。抱歉我的英文。