gpt4 book ai didi

ruby - 第一次间隔后 VCR 自动重新录制不录制

转载 作者:行者123 更新时间:2023-12-04 16:22:22 35 4
gpt4 key购买 nike

我在录像机中自动重新录制磁带时遇到问题

这是我的配置:

VCR.configure do |c|
c.cassette_library_dir = 'spec/support/vcr_cassettes'
c.hook_into :fakeweb
end

和电话:
VCR.use_cassette 'my_cassette', :re_record_interval => 60 * 30 do
agent = Mechanize.new
start_page = agent.get(START_PAGE)
end

对于第一个请求,磁带被正确记录,但是在第一次间隔时间过去后,它不会重新记录磁带,它只是将新的请求数据附加到文件中,完全忽略间隔。

最佳答案

听起来像 re_record_interval正在按照设计的方式工作,但它可能不是您想要的。

当您使用 :re_record_interval选项,VCR 强制 :record模式到 :all如果时间足够。在这种记录模式下,它允许所有的HTTP请求都是真实的并记录下来。当它保留记录到磁盘的内容时,它将新的 HTTPInteractions 与以前记录的内容合并,删除任何旧交互,因为它有匹配的新交互(基于您的 :match_requests_on 选项)。就是这样:all旨在工作,因为不能保证特定的磁带只在您的测试套件中使用,因此它可以像这样使用:

it 'makes a request to /foo' do
VCR.use_cassette("some-host") do
make_request_to("http://some-host.com/foo")
end
end

it 'makes a request to /bar' do
VCR.use_cassette("some-host", :record => :all) do
make_request_to("http://some-host.com/bar")
end
end

在这种情况下,当您 it "makes a request to /bar"测试运行时,它将允许真实地发出请求并记录它,并且在将其持久化到磁盘时,它将代替任何先前记录到 "http://some-host.com/bar" 的 HTTP 请求。 ,但它会保留任何其他以前记录的 HTTP 交互(例如到 "http://some-host.com/foo" 的那个),因为它不想删除不参与此测试的 HTTP 交互(因此可能被完全不同的测试使用) .

关于ruby - 第一次间隔后 VCR 自动重新录制不录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170203/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com