我的应用程序中有一个丰富的前端。由于动画和AJAX请求,我的一些测试对poltergeist不适用,但是对于selenium工作正常。
如何在一个项目和一个测试环节中一起使用它们?
答案 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。抱歉我的英文。