是否可以在不运行测试套件的情况下重新录制VCR录像带?

时间:2016-05-25 15:13:59

标签: ruby-on-rails vcr

我有一个~2.5GB的录像带盒https://github.com/vcr/vcr。我使用的是3.0.1版本。

我需要不时重新录制磁带。但是,由于运行测试所需的时间远远超过仅发出请求并将答案记录在盒式磁带中,因此我正在寻找一种方法来仅触发已记录的请求并重新录制它们。

理想情况下,我会执行一项rake任务,例如:

rake vcr:cassettes:refresh

我应该怎么做?

1 个答案:

答案 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的示例或示例组都有:vcrvcr: true作为元数据,那么您可以在命令行上运行仅使用VCR标记的规范,例如:

$ rspec ./spec --tag @vcr

--tag选项记录在案here

如果您没有使用元数据设置,并且没有什么可以阻止您使用它,那么切换到它可能比提出过滤规范的其他方式更快,假设它们&# 39;在那里彻底混合。它还使添加新的VCR规格更加方便。一个可能的缺点是卡带名称可能需要更改,但由于您计划重新录制它们,这不应该太重要。