2011-11-16 25 views
5

Tôi có một số tính năng của Cucumber cần tương tác với API định tuyến của Google Maps. Tôi đang cố gắng phân tích những tương tác này bằng cách sử dụng VCR.Sử dụng VCR với Cucumber qua thẻ

Tôi đã thêm một thẻ VCR các tính năng của tôi như vậy:

@google_routing_api @javascript 
Scenario: Creating a bus 
    Given I am on the buses page 
    When I follow "Get Started Now" 

Và sau đó thêm vào cấu hình VCR của tôi trong features/support/vcr.rb

require 'vcr' 

VCR.config do |c| 
    # INFO: This is relative to the Rails.root 
    c.cassette_library_dir = 'features/fixtures/vcr_cassettes' 
    c.stub_with :fakeweb 
end 

# INFO: https://github.com/myronmarston/vcr/wiki/Usage-with-Cucumber 
VCR.cucumber_tags do |t| 
    t.tag '@google_routing_api' 
end 

Nhưng khi tôi chạy cukes của tôi, tôi đang nói ..

Real HTTP connections are disabled. Unregistered request: GET http://127.0.0.1:54181/__identify__ 

Trả lời

12

Bạn phải đặt VCR thành ignore localhost requests. Nếu không, khi capybara cố gắng yêu cầu bất kỳ trang nào từ trang web của bạn, VCR sẽ chặn nó.

Thêm c.ignore_localhost = true vào khối cấu hình VCR của bạn.

VCR.config do |c| 
    c.cassette_library_dir = 'features/fixtures/vcr_cassettes' 
    c.stub_with :fakeweb 
    c.ignore_localhost = true 
end 
+3

FWIW, sự cố (và giải pháp) không liên quan gì đến dưa chuột. Nó có tất cả mọi thứ để làm với capybara và thực tế là nó khởi động ứng dụng của bạn và làm cho các yêu cầu cho nó khi bạn sử dụng một trình điều khiển javascript. Bạn sẽ có cùng một vấn đề nếu bạn sử dụng capybara với Test :: Unit hoặc RSpec. –

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