黄瓜,录像机宝石和镀铬驱动程序不能一起工作

时间:2013-03-06 14:22:59

标签: ruby-on-rails ruby ruby-on-rails-3 cucumber

我正在尝试使用VCR gem,Chrome驱动程序和webmock运行黄瓜,但它无法运行。一个问题是记录了 none 的请求。我确实将录像机设置为ignore_localhost,我认为这是因为j SO answer中解释的所需。

但为什么我的步骤请求访问网址(说www.test.com)没有被记录?我看到Chrome浏览器加载和网址中的地址所以我知道黄瓜步是去那里。

如果我关闭ignore_localhost,我会看到一些录音但是uri都是127.0.0.1。我期望的uri出现在body: string而不是uri为什么会这样?

request:
  method: post
  uri: http://127.0.0.1:9592/session/87bb12aa8b5b1230399b98bcc7d0ba11/url
  body:
    encoding: US-ASCII
    string: ! '{"url":"http://www.test.com"}'
  headers:
    Accept:
    - application/json
    Content-Type:
    - application/json; charset=utf-8
    Content-Length:
    - '46'
    User-Agent:
    - Ruby

包括它有帮助,这是我的录像机配置

VCR.configure do |c|
  c.cassette_library_dir = 'features/support/vcr_cassettes'
  c.hook_into :webmock
  c.ignore_localhost = true
end

1 个答案:

答案 0 :(得分:1)

首先,设置如下配置:

VCR.configure do |c|
  c.cassette_library_dir = 'features/support/vcr_cassettes'
  c.hook_into :webmock
  c.ignore_localhost = true
  c.allow_http_connections_when_no_cassette = false
end

使用最后一个选项,告诉VCR没有真正的http请求,没有磁带。现在运行测试。我打赌它会引发错误!现在你必须告诉录像机何时使用哪个录像带。在这里查看VCR的黄瓜帮手https://www.relishapp.com/vcr/vcr/v/2-4-0/docs/test-frameworks/usage-with-cucumber

VCR还为其他测试框架提供了一些帮助https://www.relishapp.com/vcr/vcr/v/2-4-0/docs/test-frameworks