我有一个~2.5GB的录像带盒https://github.com/vcr/vcr。我使用的是3.0.1版本。
我需要不时重新录制磁带。但是,由于运行测试所需的时间远远超过仅发出请求并将答案记录在盒式磁带中,因此我正在寻找一种方法来仅触发已记录的请求并重新录制它们。
理想情况下,我会执行一项rake任务,例如:
rake vcr:cassettes:refresh
我应该怎么做?
答案 0 :(得分:0)
我要提出的建议不会适用于所有可能的设置(例如,在VCR.use_cassette
中包含每个连接的设备,或者使用带法拉第的VCR中间件的设备)。但如果您碰巧使用configure_rspec_metadata!
设置了录像机,请执行以下操作:
https://www.relishapp.com/vcr/vcr/v/3-0-1/docs/test-frameworks/usage-with-rspec-metadata
...换句话说,如果每个需要VCR的示例或示例组都有:vcr
或vcr: true
作为元数据,那么您可以在命令行上运行仅使用VCR标记的规范,例如:
$ rspec ./spec --tag @vcr
--tag
选项记录在案here。
如果您没有使用元数据设置,并且没有什么可以阻止您使用它,那么切换到它可能比提出过滤规范的其他方式更快,假设它们&# 39;在那里彻底混合。它还使添加新的VCR规格更加方便。一个可能的缺点是卡带名称可能需要更改,但由于您计划重新录制它们,这不应该太重要。