Use an HTTP Proxy with Capybara Mechanize
Hooray for your awesomely fast and invisible capybara-mechanize HTTP-based acceptance tests! Aren’t they great? Well – until they break and you need to know just what in the Helper is going on back there.
Running your traffic through a proxy is a good start to debug this, as part of a process which typically will also involve logic, reasoning, and facepalm.
At least the first step is painless. Setup your capybara proxy as follows from within your spec_helper:
Capybara.configure do |config| config.default_driver = :mechanize if proxy = ENV['PROXY'] proxy = URI.parse(proxy) Capybara.current_session.driver.browser.agent.set_proxy(proxy.host, proxy.port) end end
I prefer to pass my intent to proxy on the command line, hence the ENV[‘PROXY’]. But you should do what works best for you.
Note: This differs from the way it used to work, wherein the agent property was on driver, not driver.browser. Thanks to lmmcoy for publishing this general strategy.