2012-10-31 25 views

Trả lời

10

Trong spec_helper.rb, thiết lập như sau:

config.before(:each) do 
    if example.metadata[:type] == :request 
     Capybara.current_driver = :selenium # or equivalent javascript driver you are using 
    else 
     Capybara.use_default_driver # presumed to be :rack_test 
    end 
    end 
+0

Điều đó có tác dụng nhưng tôi muốn giới hạn điều này để yêu cầu thông số kỹ thuật. Tất nhiên tôi có thể đặt dòng này trong mỗi tập tin spec yêu cầu duy nhất, nhưng tôi muốn cấu hình nó trên toàn cầu. Loại giống như bạn có thể bao gồm các mô-đun cụ thể cho một số loại thông số kỹ thuật nhất định. – rubiii

+0

@rubiii được cập nhật bằng cách kiểm tra loại thông số – prusswan

+0

có vẻ tốt. Cảm ơn nhiều! – rubiii

8

Đối với các phiên bản sau của Capybara và rspec, điều quan trọng là phải kiểm tra loại là "tính năng"

config.before(:each) do 
    if [:request, :feature].include? example.metadata[:type] 
    Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using 
    else 
    Capybara.use_default_driver # presumed to be :rack_test 
    end 
end 

hoặc cho RSpec 3 (vượt qua example vào khối)

config.before(:each) do |example| 
    if [:request, :feature].include? example.metadata[:type] 
    Capybara.current_driver = :poltergeist # or equivalent javascript driver you are using 
    else 
    Capybara.use_default_driver # presumed to be :rack_test 
    end 
end 
+0

Nếu bạn đang sử dụng RSpec> = 3, bạn sẽ cần phải viết dòng đầu tiên của lệnh này như 'config.before (: each) do | example |' để có được cùng một hành vi. Thông tin khác qua @ joshua-muheim tại đây: http://stackoverflow.com/a/24571607/2948832 – styger

+1

@styger, Cảm ơn, tôi đã cập nhật câu trả lời. – justingordon

Các vấn đề liên quan